Version complète: sur le forum Webmaster Hub : Redirection index.php => /
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
Spidetra
Salut à tous,
J'ai un .htaccess avec un ensemble de règle de réécriture qui fonctionnent en local et chez Ovh.

J'ai rajouté une dernière règle pour rediriger index.php => /

CODE
RewriteRule ^index.php$ / [QSA,L,R=301]


ça marche très bien en local, mais pas chez Ovh.

Quelle est la bonne syntaxe pour rédiriger index.php vers la racine du site ?
merci pour le coup de main.
The Jedi
Chez OVH ça te fait quoi justement, une erreur ? Si tu as accès au log (error_log), tu peux identifier la ligne de l'erreur ? En général il te dit ce qui déconne (chemin introuvable etc.).
tom_sawyer
c'est pas /index.php au lieu d'index.php ?
Dan
Enlève le ^ devant index.php wink.gif
CODE
RewriteRule index.php$  /  [QSA,L,R=301]
Spidetra
Merci pour vos infos.
Les différentes modifs ne marchent pas. Et comme ce n'est pas mon site, pour l'instant, je n'ai pas accés aux fichiers de logs.

Voici le .htaccess en entier :
CODE
Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING}
RewriteRule ^(.*)-c-(.*)/$ index.php?cPath=$2&%{QUERY_STRING}
RewriteRule ^(.*)-m-(.*)/$ index.php?manufacturers_id=$2&%{QUERY_STRING}
RewriteRule ^(.*)-pi-(.*).html$ popup_image.php?pID=$2&%{QUERY_STRING}
RewriteRule ^(.*)-t-(.*).html$ articles.php?tPath=$2&%{QUERY_STRING}
RewriteRule ^(.*)-a-(.*).html$ article_info.php?articles_id=$2&%{QUERY_STRING}
RewriteRule ^(.*)-pr-(.*).html$ product_reviews.php?products_id=$2&%{QUERY_STRING}
RewriteRule ^(.*)-pri-(.*).html$ product_reviews_info.php?products_id=$2&%{QUERY_STRING}
RewriteRule ^(.*)-i-(.*).html$ information.php?info_id=$2&%{QUERY_STRING}
RewriteRule ^(.*)-links-(.*).html$ links.php?lPath=$2&%{QUERY_STRING}
RewriteRule ^index.php$ / [QSA,L,R=301]


Pour la dernière règle j'ai testé toutes les modifs conseillés ici.
C'est fou, cette règle est toute simple et en plus elle marche sur mon poste en local IMSTP5.gif
The Jedi
Question bête, par défaut, quand tu arrives sur le site, ce n'est pas index.php qui est appelé ? Je sais que j'avais un problème similaire et je m'étais résolu à faire une bidouille mais en PHP, dans le fichier appelé par tous mes scripts (mon index.php est appelé systématiquement, je fais des include après, plus simple à gérer).

CODE
if( preg_match('/index.php/siU', $_SERVER['REQUEST_URI']) )
{ header("HTTP/1.1 301 Redirect Permanent"); location("/"); }
Spidetra
CITATION(The Jedi @ mercredi 10 mai 2006, 13h52)
Question bête, par défaut, quand tu arrives sur le site, ce n'est pas index.php qui est appelé ?
*


Non. Enfin, index.php si j'arrive à la racine du site. Mais ça c'est normal.
Merci pour ton astuce en Php. Je l'avais déjà lu ( peut-être sur ce forum ).
Je désire intervenir au niveau Apache, et non pas au niveau Php.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.