Boucle!

Discussion dans 'URL Rewriting et .htaccess' créé par Recif, 5 Décembre 2013.

  1. Recif
    Recif WRInaute impliqué
    Inscrit:
    25 Août 2004
    Messages:
    849
    J'aime reçus:
    0
    Bonjour,

    J'ai un petit souci avec mon .htaccess: j'aimerai transformer des urls existantes et référencée (toto.php?mod=lemod&id=13) en url rewrite (toto-13.html), donc faire une redirection 301 puis un urlrewrite dessus. Mais bien entendu ça part en boucle... Comment faire?

    Ma redirection 301:

    Code:
    RewriteCond %{QUERY_STRING} mod=lemod&id=([0-9]+)$
    RewriteRule  ^.*$ /toto-%1\.html? [R=301]
    Puis j'ai:

    Code:
    RewriteRule ^toto-([0-9]+)\.html$ toto.php?mod=lemod&id=$1  [L]
    Merci
     
  2. Giustino
    Giustino WRInaute discret
    Inscrit:
    19 Novembre 2011
    Messages:
    141
    J'aime reçus:
    0
  3. Recif
    Recif WRInaute impliqué
    Inscrit:
    25 Août 2004
    Messages:
    849
    J'aime reçus:
    0
    Ca marche, merci. Mais j'ai regardé et je ne comprends pas bien, en tout cas impossible à appliquer à mon cas... :(
     
  4. Giustino
    Giustino WRInaute discret
    Inscrit:
    19 Novembre 2011
    Messages:
    141
    J'aime reçus:
    0
    Ok alors je vais te le faire :)
    Voici ce qui correspond normalement à ton cas:

    Code:
    RewriteEngine on
    
    RewriteRule     ^toto-([0-9]+).html$       toto.php?mod=lemod&id=$1 [E=BREAK:1,L]
    
    RewriteCond     %{ENV:REDIRECT_BREAK}     !^1$
    RewriteCond     %{QUERY_STRING}   ^mod=lemod&id=([0-9]+)$
    RewriteRule     ^toto.php$       toto-%1.html [R=301,L]
    
     
  5. Recif
    Recif WRInaute impliqué
    Inscrit:
    25 Août 2004
    Messages:
    849
    J'aime reçus:
    0
    Super! Merci Giustino!
     
  6. Recif
    Recif WRInaute impliqué
    Inscrit:
    25 Août 2004
    Messages:
    849
    J'aime reçus:
    0
    Bon ben j'ai parlé trop vite... Lorsque j'envoi toto.php?mod=lemod&id=15 par exemple, j'ai une 404 :-(
     
  7. Giustino
    Giustino WRInaute discret
    Inscrit:
    19 Novembre 2011
    Messages:
    141
    J'aime reçus:
    0
    1) As-tu d'autres règles dans ton htaccess ou essayes-tu uniquement avec le code que je t'ai donné ?
    2) Essayes-tu exactement le code que je t'ai donné ou l'as-tu légèrement modifié (ne serait-ce que les noms de page) ?

    Si tu sais, mets le code de ton htaccess ici afin de voir d'où peut venir le problème.

    Autre chose: est-ce que la nouvelle adresse (l'url réécrite, par exemple toto-NOMBRE.html) fonctionne ? Quand je dis "fonctionne", cela signifie qu'elle doit afficher le même contenu que toto.php?mod=lemod&id=NOMBRE
     
  8. Recif
    Recif WRInaute impliqué
    Inscrit:
    25 Août 2004
    Messages:
    849
    J'aime reçus:
    0
    Non, en effet le code donné est une extrapolation du vrai code, mais la structure reste la même. Le .htaccess fait 493 lignes et le contenu je préfère le garder confidentiel et non public. Je peux te le mettre en MP si tu veux? Mais à ne pas diffuser publiquement si tu veux bien.

    Sinon oui, la page toto-514.html point bien sur la bonne page.
    Et je en trouve aucun conflit avec d'autres règles dans le .htaccess :(
     
  9. Giustino
    Giustino WRInaute discret
    Inscrit:
    19 Novembre 2011
    Messages:
    141
    J'aime reçus:
    0
    Oui pas de problème, je comprends bien :)

    As-tu essayé en plaçant mon code juste après "RewriteEngine on" (avant toute autre règle) ?
    Si ça ne fonctionne toujours pas, alors soit tu fais une erreur soit il y a un conflit.
    Dans ce cas, tu peux m'envoyer le contenu de ton htaccess en MP, je regarderai quand j'aurai 2 minutes
     
  10. Recif
    Recif WRInaute impliqué
    Inscrit:
    25 Août 2004
    Messages:
    849
    J'aime reçus:
    0
    Oui, c'est bien placé juste après le rewriteengine on... Je comprends pas... Je t'ai envoyé le htaccess en MP
     
  11. Giustino
    Giustino WRInaute discret
    Inscrit:
    19 Novembre 2011
    Messages:
    141
    J'aime reçus:
    0
    Je ne vois pas d'erreur dans ton code. De plus, on évite tout conflit en plaçant les 2 règles au début.

    En résumé, tu me dis que l'url réécrite toto-NOMBRE.html affiche bien le contenu.
    Par contre, si tu tentes d'accéder à toto.php?mod=lemod&id=NOMBRE tu as une 404.
    C'est bien cela ?

    Il n'y a aucune redirection visible lorsque tu accèdes directement à ta page php? L'url dans la barre d'adresse de ton navigateur reste celle de ta page php? Ou une autre?
    Tu peux toujours utiliser un sniffeur http pour voir ce qu'il se passe (par exemple le module "HTTP Header" sous Firefox, très utile par moment :))
     
  12. Recif
    Recif WRInaute impliqué
    Inscrit:
    25 Août 2004
    Messages:
    849
    J'aime reçus:
    0
    J'ai "The requested URL /home/xxxx/public_html/toto-18480.html was not found on this server." ...

    Dans le véritable nom d'url j'ai plutôt toto-titi-14.html mais je pense que ça ne change pas grand chose?
     
  13. Recif
    Recif WRInaute impliqué
    Inscrit:
    25 Août 2004
    Messages:
    849
    J'aime reçus:
    0
    en fait je viens de m'apercevoir que l'url renvoyée par la page d'erreur pose un problème: il remonte jusqu'au /home du serveur:

    -http://www.xxx.com/home/xxx/public_html/toto-18480.html?mod=lemod&id=18480
     
  14. Giustino
    Giustino WRInaute discret
    Inscrit:
    19 Novembre 2011
    Messages:
    141
    J'aime reçus:
    0
    Etrange, surtout quand tu me dis que l'accès à toto-18480.html est OK...
    Ton htaccess est à la racine du site? Et ta page php également?

    Ceci n'a pas vraiment de sens :?
    Essayes ceci, juste par curiosité pour voir si ça fonctionne de cette manière:

    Code:
    RewriteEngine on
    
    RewriteRule     ^toto-([0-9]+).html$       toto.php?mod=lemod&id=$1 [E=BREAK:1,L]
    
    RewriteCond     %{ENV:REDIRECT_BREAK}     !^1$
    RewriteCond     %{QUERY_STRING}   ^mod=lemod&id=([0-9]+)$
    RewriteRule     ^toto.php$       http://%{HTTP_HOST}/toto-%1.html? [R=301,L]
    
     
  15. Recif
    Recif WRInaute impliqué
    Inscrit:
    25 Août 2004
    Messages:
    849
    J'aime reçus:
    0
    oui, htaccess à la racine et fichier également

    Après modif j'ai ça:

    -http://www.xxx.com/toto-18480.html?mod=lemod&id=18480
     
  16. Giustino
    Giustino WRInaute discret
    Inscrit:
    19 Novembre 2011
    Messages:
    141
    J'aime reçus:
    0
    C'est déjà mieux. Ca te redirige bien vers la nouvelle url.
    Tu as le contenu adéquat qui s'affiche également ?
    Par contre je ne comprends pas pourquoi il ajoute le query string à l'url, c'est que quelque chose se passe mal dans la réécriture, même si on évite la boucle.

    EDIT: tu as bien mis le "?" juste après le ".html" sur la dernière ligne? Normalement ce n'est pas le problème mais on ne sait jamais.
     
  17. Recif
    Recif WRInaute impliqué
    Inscrit:
    25 Août 2004
    Messages:
    849
    J'aime reçus:
    0
    Bingo! C'était ça en effet, j'avais oublié ce "?"... Correction faite ça fonctionne! :)
    Super, merci pour le temps que tu as pris pour m'aider en tout cas!
     
Chargement...
Similar Threads - Boucle Forum Date
PHP : problème de comparaison égalité dans boucle FOR avec incrément décimal de 0.1 Développement d'un site Web ou d'une appli mobile 26 Août 2021
Boucle PHP et référencement Rédaction web et référencement 13 Décembre 2019
Boucle While qui ne s'arrête pas ! Développement d'un site Web ou d'une appli mobile 6 Février 2018
Un chiffre aléatoire mais uniquement dans une boucle php Développement d'un site Web ou d'une appli mobile 15 Octobre 2016
Boucle de redirection URL Rewriting et .htaccess 8 Décembre 2015
Redirect 301 et boucle de redirection dans wordpress URL Rewriting et .htaccess 24 Avril 2015
probleme de redirection puis pb boucle URL Rewriting et .htaccess 26 Mars 2015
Requête sur autre table dans une boucle sur jonction Développement d'un site Web ou d'une appli mobile 11 Septembre 2014
Que faire face à des requetes en boucle sur la home Administration d'un site Web 3 Juillet 2014
Sf2 - Boucle de redirection lors du déploiement Développement d'un site Web ou d'une appli mobile 13 Juin 2014