[URL REWRITING] Incohérence avec le fichier index ?

Discussion dans 'Débuter en référencement' créé par dorian53, 25 Janvier 2009.

  1. dorian53
    dorian53 WRInaute passionné
    Inscrit:
    10 Avril 2005
    Messages:
    1 885
    J'aime reçus:
    1
    Bonjour,

    Pourquoi cette règle fonctionne.
    Code:
    RewriteRule (.*)index\.php$ /$1 [R=301,L]
    http://www.example.com/index.php renvoie vers http://www.example.com
    C'est à dire que si http://www.example.com est appelé Apache passe outre cette règle.


    En revanche, si l'on écrit la règle suivante pour capturer tout ce qui pourrait exister comme appel de page ou de dossier.
    Code:
    RewriteRule (.+) / [L]
    Apache plante avec Internal Server Error.
    Parce qu'il doit tourner en boucle étant donné que la redirection vers / appelle pour lui index.php


    Hors si index.php semble être appelé dans ce cas, pourquoi le 1er exemple ne tourne pas en boucle non plus ?

    J'espère avoir été suffisamment clair.

    Ou est la logique ?

    Merci
     
  2. HawkEye
    HawkEye WRInaute accro
    Inscrit:
    23 Février 2004
    Messages:
    13 854
    J'aime reçus:
    5
    Ce n'est pas une question de fichier appelé, mais d'URI affiché.

    Dans le premier cas, tu demandes à ce que tout ce qui se termine par "index.php" soit redirigé (R=301) vers le même URI, sans index.php.

    Exemple:

    /index.php -> / [ton test]
    mais aussi
    /anythingindex.php -> /anything
    /dossier/sous-dossier/index.php --> /dossier/sous-dossier/

    Le second ne redirige pas: il réécrit.

    Je suppose que ton objectif est de gérer la réécriture via index.php (donc par l'identification de $_SERVER['REQUEST_URI']) ?
    Tu dois à mon avis le présenter comme ceci:

    Code:
    RewriteRule (.+) /index.php [L]
    --> et c'est dans index.php que tu vas définir que si l'URI est "index.php", il faut rediriger vers la racine.
     
  3. dorian53
    dorian53 WRInaute passionné
    Inscrit:
    10 Avril 2005
    Messages:
    1 885
    J'aime reçus:
    1
    Pas mieux, voici la réponse de Firefox.
    La solution je l'ai :

    Code:
    RewriteEngine on
    
    RewriteRule (.*)index\.php$ /membre/$1 [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} !index.php
    RewriteRule .+ /membre/ [L]
    Mais ma question reste la même, si index.php semble être appelé dans la seconde règle, pourquoi la 1ere règle ne tourne pas en boucle non plus ?

    Merci
     
  4. dorian53
    dorian53 WRInaute passionné
    Inscrit:
    10 Avril 2005
    Messages:
    1 885
    J'aime reçus:
    1
    En fait la question est encore plus simple que ça.

    Pourquoi cette règle renvoie "Internal Server Error" quand j'appelle http://www.example.com/membre/ ?

    Code:
    RewriteRule .+ /membre/ [L]
    Le .htaccess est dans membre.
    La règle ne capture donc rien, aucun caractère.
    Ce qui ne correspond pas à .+ (au moins un caractère).


    Et c'est à ce niveau qu'il ne faut pas me répondre qu'Apache appelle index.php :) sinon cf règle 1.
     
  5. dorian53
    dorian53 WRInaute passionné
    Inscrit:
    10 Avril 2005
    Messages:
    1 885
    J'aime reçus:
    1
Chargement...
Similar Threads - [URL REWRITING] Incohérence Forum Date
[URL REWRITING] Redirection 301 pages générées URL Rewriting et .htaccess 12 Novembre 2013
[URL Rewriting] chez free.fr Développement d'un site Web ou d'une appli mobile 6 Juillet 2012
[URL REWRITING] Sous domaines (Blogs) URL Rewriting et .htaccess 8 Décembre 2010
[Url Rewriting] N'aurais je rien compris à la façon de coder le htaccess ? Débuter en référencement 12 Avril 2010
[réglé][Url rewriting] Enlever les variables de sessions URL Rewriting et .htaccess 5 Mars 2009
[URL Rewriting] Supprimer automatiquer les paramètres URL Rewriting et .htaccess 27 Février 2009
[URL rewriting] Réécrire des pages multiples de 8 en page-1 URL Rewriting et .htaccess 6 Décembre 2008
[URL Rewriting] Réécriture en fonction de la langue URL Rewriting et .htaccess 29 Janvier 2008
[URL Rewriting] - url 404 et trait d'union Débuter en référencement 11 Octobre 2007
[URL Rewriting] Comment empêcher le contournement? Débuter en référencement 14 Septembre 2007
[URL REWRITING] Liste des séparateurs conseillés URL Rewriting et .htaccess 12 Août 2007
[Url Rewriting] Punbb URL Rewriting et .htaccess 28 Octobre 2006
[resolu] [url rewriting] un débutant qui peine... au début URL Rewriting et .htaccess 2 Août 2006
[URL Rewriting] marche seulement en local URL Rewriting et .htaccess 1 Août 2006
[URL Rewriting] utiliser une fonction PHP...mais où ? Débuter en référencement 11 Novembre 2005
[URLrewriting] J'arrive pas à trouver la bonne syntaxe !!! Débuter en référencement 5 Novembre 2005
[Url Rewriting] P'tite question URL Rewriting et .htaccess 29 Juillet 2005
[url rewriting] Dossier parent URL Rewriting et .htaccess 22 Juillet 2005
[Résolu][url_rewriting]Créer des répertoires virtuels URL Rewriting et .htaccess 23 Juin 2005
[url rewriting] Répertoires Virtuels URL Rewriting et .htaccess 17 Mai 2005