Redirec domaine avec index.htm vers domaine sans index.htm

WRInaute discret
Bonjour,

Mon problème est le suivant :

Pour éviter le duplicate content sur mon site je souhaite rediriger :

http://www.domaine_a_bibi.com/index.htm

vers

http://www.domaine_a_bibi.com/index.htm


J'ai donc essayé :

RewriteRule ^index.htm$ http://www.domaine_a_bibi.com/ [NC,L,R=301]

Mais la page ne se charge plus et le navigateur me dit que les redirections sont faites de manière que sa n'aboutira pas.
En gros sa boucle !

Donc j'essaie sa :

RewriteCond %{REQUEST_URI} ^/index.htm$
RewriteRule ^(.*)$ https://www.google.com/ [QSA,L,R=301]

Marche pas non plus mais je remarque tout de même que pour les deux urls :
- http://www.domaine_a_bibi.com
- http://www.domaine_a_bibi.com/index.htm

Je suis redirigé vers la page de google.

Je ne vois donc pas comment je peut faire une règle qui ne boucle pas étant donné que avec et sans le "index.htm" l'url passe dans la condition de redirection.

Merci pour vos réponses
 
WRInaute passionné
Le php c'est gégé :
Code:
<?php
// Redirection permanente vers le nom de domaine si on a index.htm (ou php) dans l'url
if(eregi('index.(htm|php)', $_SERVER['REQUEST_URI']) ) {
   header ('HTTP/1.1 301 Moved Permanently');
   header('Location: http://www.domaine_a_bibi.com/');
}
?>
A mettre tout en haut de ton index.php (il te faudra donc renommer index.htm en index.php)
 
WRInaute discret
Je te remercie mais mon but est de le faire avec le htaccess, je ne voie pas pourquoi sa marche partout sauf la ?
Tout les tutoriels que j'ai vu disent de faire comme sa pourquoi sa ne fonctionne pas ?
 
WRInaute passionné
et avec ca :
Code:
RewriteCond %{REQUEST_URI} ^(/.*)?/index\.(htm|html|php|asp)$
RewriteRule ^(.*)index\.(htm|html|php|asp)$ /$1 [R=301,L]
 
WRInaute passionné
j'ai trouvé une variante qui marche sur mon serveur :
Code:
RewriteCond %{REQUEST_URI} ^(/.*)?/index\.(htm|html|php|asp)$
RewriteCond %{THE_REQUEST} /index\.(htm|html|php|asp)
RewriteRule ^(.*)index\.(htm|html|php|asp)$ /$1 [R=301,L]
 
WRInaute accro
c'est normal que ça boucle, car par défaut quand on appelle la racine d'un répertoire, il exécute index.* et donc si tu transformes index.* en / il va boucler sans fin.
La solution : tu renommes ton index.htm en toto.htm
puis tu fais ta redirection et tu rajoutes
DirectoryIndex toto.htm
et ça marche
 
Discussions similaires
Haut