réécrire /categorie.php?id=xxx en /categorie/id

Discussion dans 'URL Rewriting et .htaccess' créé par Elianora la blanche, 13 Septembre 2020.

  1. Elianora la blanche
    Elianora la blanche WRInaute discret
    Inscrit:
    20 Juillet 2010
    Messages:
    50
    J'aime reçus:
    0
    Bonjour à tous !

    je suis en train de refaire mon site et, dans un souci de conserver mon référencement actuel, je souhaite garder le format de mes URLs. :cool:

    J'ai des URLs de type monsite.tld/categorie/id et j'aimerais que ça pointe sur monsite.tld/categorie.php?id=xxx
    j'ai donc écrit
    Code:
    SetEnv REGISTER_GLOBALS 0
    SetEnv SESSION_USE_TRANS_SID 0
    
    AuthType none
    Satisfy any
    Options +FollowSymlinks
    RewriteEngine on
    DirectoryIndex index.php
    
    <IfModule mod_rewrite.c>
       # redirection d'URL générales
       RewriteRule ^categorie/([0-9]{1,2})$ categorie.php?id=$1 [L]
    </IfModule>
    
    mais ça ne fonctionne pas : la page categorie.php est appelée mais le paramètre n'est pas reconnu (et la css est complètement pétée, comme si la page se trouvait effectivement dans un sous-dossier nommé categorie, ce qui n'est pas le cas)

    j'ai essayé 36 trucs :
    • avec ou sans / au début,
    • avec ou sans ^ au début,
    • avec ou sans $ à la fin,
    • avec ou sans / au début de l'url réelle
    • avec ou sans QSA (qu le serveur ne semble pas aimer car erreur 500)
    • ([0-9]+) ou même simplement (.*)

    mais rien à faire... je ne comprends pas o_O
    si j'appelle categorie.php?id=xxx, ça fonctionne très bien donc le problème est vraiment au niveau de la réécriture

    en dernier recours, je pourrais tenter de faire des urls réécrites du genre categorie-id.html mais j'aimerais éviter d'en arriver là et de devoir mettre des 301 dans tous les sens pour changer le format actuel (qui me paraît être très clair) :(

    merci d'avance
     
  2. mickou51
    mickou51 WRInaute discret
    Inscrit:
    8 Janvier 2016
    Messages:
    130
    J'aime reçus:
    11
    Alors ça c'est simple à corriger:

    Tu dois modifier tous ce genre de choses:
    <link rel="stylesheet" href="css.php" />

    par:
    <link rel="stylesheet" href="/css.php" />

    Dans le contenu des fiochiers css/js aussi il faut remplacer tous les noms des fichiers background:url(images.jpg) devient par exemple background:url(/images.jpg)


    Et idem pour ça peut-être:

    categorie.php?id=$1 [L]

    par:

    /categorie.php?id=$1 [L]

    le [L] n'est peut etre pas obligatoire, il suffit de le retirer
     
    #2 mickou51, 13 Septembre 2020
    Dernière édition: 13 Septembre 2020
    Elianora la blanche apprécie ceci.
  3. Elianora la blanche
    Elianora la blanche WRInaute discret
    Inscrit:
    20 Juillet 2010
    Messages:
    50
    J'aime reçus:
    0
    merci, j'ai déjà remis la css d'applomb comme ça

    par contre, les URLs ne vont toujours pas
    comme j'ai dit, j'ai essayé plusieurs formats mais sans succès :(
     
  4. Elianora la blanche
    Elianora la blanche WRInaute discret
    Inscrit:
    20 Juillet 2010
    Messages:
    50
    J'aime reçus:
    0
    j'ai l'impression que c'est le / dans l'URL "ré-écrite" qui pose problème
    celles sans / dedans fonctionnent correctement

    mais je ne comprends pas pourquoi...
     
  5. mickou51
    mickou51 WRInaute discret
    Inscrit:
    8 Janvier 2016
    Messages:
    130
    J'aime reçus:
    11
    .htaccess :
    Code:
    RewriteEngine on
    RewriteRule ^categorie/([0-9]{1,2})$ /categorie.php?id=$1

    categorie.php :
    Code:
    <?php
    
    echo $_GET['id'];
    ?>
    Je viens d'essayer ça, et tout fonctionne:

    https://site.com/categorie/20 // il affiche 20, etc..

    Il ne faut pas oublier de supprimer le cache ou redémarrer l navigateur à chaque modification du fichier .htaccess car tu risques de passer à côté d'un truc qui fonctionne vraiment mais que c'est ton cache de la modification précédente qui pose problème...
     
  6. Elianora la blanche
    Elianora la blanche WRInaute discret
    Inscrit:
    20 Juillet 2010
    Messages:
    50
    J'aime reçus:
    0
    en fait, ça vient de l'hébergement visiblement

    la réécriture cat/xx vers categorie.php?id=xx fonctionne mais pas si je mets categorie/xx
    comme si c'était réservé
    categorie.php existe et l'hébergeur redirige tout seul /categorie (sans extension) vers /categorie.php
    je pense que c'est ça qui fout la grouille mais je ne sais pas comment faire du coup

    NB : hébergeur = OVH mutualisé
     
    #6 Elianora la blanche, 14 Septembre 2020
    Dernière édition: 14 Septembre 2020
  7. mickou51
    mickou51 WRInaute discret
    Inscrit:
    8 Janvier 2016
    Messages:
    130
    J'aime reçus:
    11
    Est-ce que tu as un dossier nommé "categorie" dans ton FTP à la racine là où il y a .htaccess ?
    Si la réponse est oui, il me semble avoir déjà vu que celui du site est pris en compte avant le
    RewriteRule (ou c'est l'inverse, je sais plus)
     
  8. Elianora la blanche
    Elianora la blanche WRInaute discret
    Inscrit:
    20 Juillet 2010
    Messages:
    50
    J'aime reçus:
    0
    non aucun dossier avec les "noms" demandés pour les urls ré-écrites
    finalement, j'ai renommé les fichiers php, pour qu'ils aient des noms différents des URLs... merci OVH ><
     
Chargement...
Similar Threads - réécrire categorie php Forum Date
Réécrire url sans la variable Référencement Google 19 Avril 2018
Rediriger/réécrire toutes les pages index.html contenues dans plusieurs dossiers URL Rewriting et .htaccess 1 Mars 2016
Réécrire des articles automatiquement Rédaction web et référencement 23 Février 2016
URL rewriting : réécrire automatiquement un bout de l'url URL Rewriting et .htaccess 21 Juillet 2014
Réécrire les balises Title Débuter en référencement 14 Novembre 2013
Réecrire url avec lang URL Rewriting et .htaccess 13 Octobre 2013
réécrire .php en .html URL Rewriting et .htaccess 2 Janvier 2012
Réecrire l'url d'un répertoire vers le répertoire parent URL Rewriting et .htaccess 15 Mai 2011
réécrire index.php?id=xxx avec le titre d'un champs mysql URL Rewriting et .htaccess 14 Mars 2011
Réécrire des URL avec un p... de point d'interrogation ? URL Rewriting et .htaccess 10 Décembre 2010