Messages: 87

Enregistré le: 19 Jan 2007

Message le Mar Avr 08, 2008 12:40

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 ^(.*)$ http://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
Haut
9 Réponses
Messages: 2230

Enregistré le: 24 Aoû 2005

Message le Mar Avr 08, 2008 12:51

Le php c'est gégé :
Code: Tout sélectionner
<?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)
Haut
Messages: 87

Enregistré le: 19 Jan 2007

Message le Mar Avr 08, 2008 12:58

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 ?
Haut
Messages: 1874

Enregistré le: 17 Déc 2006

Message le Mar Avr 08, 2008 14:24

avec ca :
Code: Tout sélectionner
RewriteCond %{REQUEST_URI} ^index\.(htm|html|php)$
RewriteRule ^(.*)index\.(htm|html|php)$ /$1 [R=301,L]
Haut
Messages: 87

Enregistré le: 19 Jan 2007

Message le Mar Avr 08, 2008 14:32

Cela ne fonctionne pas non plus.
Haut
Messages: 1874

Enregistré le: 17 Déc 2006

Message le Mar Avr 08, 2008 14:54

et avec ca :
Code: Tout sélectionner
RewriteCond %{REQUEST_URI} ^(/.*)?/index\.(htm|html|php|asp)$
RewriteRule ^(.*)index\.(htm|html|php|asp)$ /$1 [R=301,L]
Haut
Messages: 87

Enregistré le: 19 Jan 2007

Message le Mar Avr 08, 2008 17:21

Cela ne fonctionne malheureusement toujours pas !
Haut
Messages: 1874

Enregistré le: 17 Déc 2006

Message le Mar Avr 08, 2008 17:57

ça marche chez moi en local avec WAMP.
sinon j'utilise sur mes sites la solution php donnée par bertimus
Haut
Messages: 1874

Enregistré le: 17 Déc 2006

Message le Mar Avr 08, 2008 18:13

j'ai trouvé une variante qui marche sur mon serveur :
Code: Tout sélectionner
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]
Haut
Messages: 22678

Enregistré le: 8 Aoû 2004

Message le Mar Avr 08, 2008 18:13

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
Haut