Bloquer l'URL canonique sur une URL virtuelle

Discussion dans 'URL Rewriting et .htaccess' créé par Craym, 3 Décembre 2010.

  1. Craym
    Craym Nouveau WRInaute
    Inscrit:
    3 Décembre 2010
    Messages:
    4
    J'aime reçus:
    0
    Bonjour !

    Ce la fait quelques jours que je cherche la solution à mon problème et pas moyen de trouver quelque chose qui fonctionne. J'en viens à vous demander votre aide car j'ai l'impression d'avoir tout essayé ! :?

    J'explique mon problème :
    Sur mon site, tous les fichiers sont des ".php" physiquement présent sur le serveur. Je souhaite pourvoir y accéder via une page .html.

    Pour ça pas de problème, une règle possible est :
    Code:
    RewriteRule (.+)\.html(.*) $1.php$2 [L]
    Cela deviens plus difficile lorsque je souhaite "bloquer" les URL sur l'extension .html c'est à dire que si je reçoit une URL avec un .php, je souhaite faire une redirection 301 sur la même page mais avec l'extension en .html. Celle ci sera ensuite réécrite par le module pour afficher la page .php

    Mon code donne alors :
    Code:
    RewriteRule (.+)\.php(.*)  http://www.site.com/$1.html$2 [R=301]
    RewriteRule (.+)\.html(.*) $1.php$2 [L]
    Problème : lorsque j'entre une URL .php, jai bien une redirection et mon navigateur va bien demander la même page en .html.
    Le module compare la première règle qui est fausse donc continue puis tombe sur la règle de l'html. Il réécrit donc l'URL mais réévalue ensuite tous le fichier ! :| Ce qu'il fait qu'il retombe dans la 1ere règle et donc redirige sur le .html... etc... et ça boucle !
    Cela même avec le drapeau [L] ou n'importe quel autre drapeau. J'ai bien essayé des conditions en tout genre mais pas moyen de l'empêcher de réévaluer la nouvelle URL html une fois qu'il l'a réécrite...

    Auriez vous une idée pour résoudre ce problème ?

    D'avance merci !
     
  2. jeroen
    jeroen WRInaute passionné
    Inscrit:
    30 Août 2002
    Messages:
    2 135
    J'aime reçus:
    0
    En inversant les 2 règles ? 404 ?

    SInon le plus simple est de faire un 301 vers .html directement dans la page PHP si la REQUQEST_URI est en .php
     
  3. Craym
    Craym Nouveau WRInaute
    Inscrit:
    3 Décembre 2010
    Messages:
    4
    J'aime reçus:
    0
    Si on inverse les deux règles, il va d'abord réécrire l'URL .html en .php (si elle ne l'est pas déjà) puis va effectuer la redirection 301 ce qui va provoquer le rechargement de la page et donc la ré-exécution du .htaccess. On va donc avoir une belle boucle. :(

    Tout cela parce que le script ne "respecte" pas le drapeau [L]... :x
    C'est vraiment bizzare qu'il ne le respecte pas. Même si je lui ajoute un [NS] pour éviter les sous-requête, cela ne change rien. Il ré-exécute le script complet à la fin de la réécriture... :?:

    Pour ce qui est de la redirection .php, si je pouvais éviter de mélanger réécriture et contenu, ce serait bien. Si je peux tout faire d'un même endroit c'est bien plus simple à gérer. Même si cette solution est tout à fait viable et que je m'y résignerais si aucune solution n'est trouvée.
     
  4. jeroen
    jeroen WRInaute passionné
    Inscrit:
    30 Août 2002
    Messages:
    2 135
    J'aime reçus:
    0
    t'as essayé avec un redirect permanent ?

    et avec un RewriteCond %{REQUEST_URI}
     
  5. Craym
    Craym Nouveau WRInaute
    Inscrit:
    3 Décembre 2010
    Messages:
    4
    J'aime reçus:
    0
    J'ai testé tes différentes propositions. Toujours pareil, le fichier se recharge et fait tout planter.
    Même si je mets des conditions :
    Code:
    RewriteCond %{REQUEST_URI} \.php
    J'ai bien testé dans tous les sens possibles mais en vain. J'ai aussi essayé avec un skip [S=1] pour sauter l'une ou l'autre des instructions selon le cas mais rien n'y fait... :cry:
    Testé aussi avec des
    Code:
    RewriteCond %{IS_SUBREQ} false
    pour essayer d'éviter le bug en cas de sous requête dans un sens ou dans l'autre toujours pareil...

    J'ai aussi essayé de passer par un fichier externe qui lui effectue une redirection 301 sur la bonne page en html pour essayer de contrer le rechargement de la page en comparant les différents HTTP_REFERER mais il semblerait que la page qui effectue la redirection ne soit pas pris en compte et donc retour point de départ.

    Plus je teste et plus je trouve tout cela étrange...
     
Chargement...
Similar Threads - Bloquer canonique virtuelle Forum Date
Bloquer accès admin Google Analytics par adresse IP Google Analytics Jeudi à 09:06
Comment bloquer les vidéos automatiques ? Facebook 28 Juillet 2019
Réseau de site backlinks : comment bloquer par htaccess ? Tests et études de cas 6 Juin 2019
Bloquer une section dans mon fichier robots.txt Débuter en référencement 9 Novembre 2018
Chrome 70 va bloquer de nombreux sites web Google : l'entreprise, les sites web, les services 10 Octobre 2018
WordPress Bloquer ou non WP include dans le robots.txt ? Référencement Google 5 Septembre 2018
fichier robots.txt bloquer paramètre p= Crawl et indexation Google, sitemaps 4 Septembre 2018
Adsense - Impossible de bloquer des annonceurs ! AdSense 19 Avril 2018
bloquer l'accès au site à certains "mauvais'bots Administration d'un site Web 26 Mars 2018
Débloquer un modem, légal ou interdit ? Le café de WebRankInfo 6 Février 2018
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice