Problème UrlRewriting

Résolu
jiantox Messages postés 1159 Statut Membre -  
jiantox Messages postés 1159 Statut Membre -
Bonjour,

Suite à ce post : https://forums.commentcamarche.net/forum/affich-25238410-url-rewriting-et-faux-dossiers

je me retrouve qu'avec des erreurs 404.

je résume : j'ai des lien type http://truc.lesite.com/users/profil/?I=pseudo
et j'aimerais faire : http://truc.lesite.com/users/pseudo/profil/

J'ai placé ceci dans mon htaccess dans le dossier profil ( erreurs 404 ) puis dans le dossier users ( toujours erreurs 404 )..

RewriteRule ^/profil - [L]
RewriteRule ^/([^a-zA-Z0-9-]+)/profil/$ /profil/?I=$1 [L]
RewriteRule ^/([^a-zA-Z0-9-]+)/$ /?I=$1 [L] 


Comment faire pour que ceci fonctionne ?

Merci d'avance

4 réponses

  1. Mihawk Messages postés 4753 Statut Contributeur 846
     
    Hello,

    Je pense que tes URL du type "http://truc.lesite.com/users/profil/?I=pseudo " ne sont pas des URL valides.

    Il faut plutôt un truc du genre "http://truc.lesite.com/users/profil.php?I=pseudo "

    Une variable ne se met pas directement dans un dossier.
    0
  2. jiantox Messages postés 1159 Statut Membre 115
     
    bah ça passe parce que ça se met sur l'index.php qui est dans le dossier

    lesite.com/users/profil/?I=pseudo = lesite.com/users/profils/index.php?I=pseudo

    écrire le "index.php" est facultatif ( du moin dans la barre d'adresse, apres dans le htaccess je sais pas.. )
    0
    1. Mihawk Messages postés 4753 Statut Contributeur 846
       
      Essaye de le mettre dans le .htaccess oui
      0
    2. jiantox Messages postés 1159 Statut Membre 115
       
      Toujours des 404, dans quel dossier il faut que je le mette exactement le htaccess

      j'ai users/profil/(index.php)?I=pseudo ou users/fiche/(index.php)?I=pseudo
      et j'aimerais users/pseudo/profil/ ou users/pseudo/fiche/

      Merci encore
      0
  3. A.Nonymous
     
    Le ^/users est nouveau.
    Les RewriteRules doivent en tenir compte.

    RewriteRule ^/users/profil - [L]
    RewriteRule ^/users/([^a-zA-Z0-9-]+)/profil/$ /users/profil/?I=$1 [L]
    RewriteRule ^/users/([^a-zA-Z0-9-]+)/$ /users/?I=$1 [L]

    C'est au chemin relatif au domaine que ces règles sont comparées, pas au dossier en cours.

    La directive RewriteBase pourrait être utilisée, mais ne sachant si d'autres RewriteRule existent, elle ne l'a pas été.
    0
    1. Mihawk Messages postés 4753 Statut Contributeur 846
       
      Je ne sais même pas si le premier slash est indispensable.
      0
    2. jiantox Messages postés 1159 Statut Membre 115
       
      Bin ça dépend dans quel dossier est le .htaccess aussi non ?
      avec juste profil/?I=pseudo je l'avais mis dans le dossier profil et j'avais une 404 quand meme :/
      0
    3. Mihawk Messages postés 4753 Statut Contributeur 846
       
      Si c'est dans le dossier "profil" il ne faut pas remettre le "profil" dans le .htaccess.
      Les règles de réécriture s'appliquent sur ce qui suis le chemin du dossier dans lequel se trouve le .htaccess.
      0
    4. jiantox Messages postés 1159 Statut Membre 115
       
      d'accord donc en gros je met le .htaccess dans le users/ et je calle plusieurs lignes pour remplacer le profil/?.. fiche/?..

      j'essai ça cet aprem
      0
  4. jiantox Messages postés 1159 Statut Membre 115
     
    ça ne fonctionne toujours pas, toujours une 404..

    j'ai testé aussi en entrant l'url complète mais toujours rien :/

    Quelqu'un saurais comment faire ?
    0