8722 sujets

Développement web côté serveur, CMS

Bonjour,

Je voudrais rediriger trois url vers une seule. Je procède ainsi via le htaccess:

RewriteEngine on
Rewritecond %{HTTP_HOST} ^ndd.com$
Rewriterule ^(.*) http://www.ndd.com/$1 [QSA,L,R=301]

Rewritecond %{HTTP_HOST} ^ndd.com/index.php$
Rewriterule ^(.*) http://www.ndd.com/$1 [QSA,L,R=301]

Rewritecond %{HTTP_HOST} ^www.ndd.com/index.php$
Rewriterule ^(.*) http://www.ndd.com/$1 [QSA,L,R=301]

La première règle fonctionne impeccablement
En revanche, les deux autres qu'à moitié et renvoient à http://www.ndd.com/index.php

Je ne suis pas très au fait de la syntaxe à adopter, si quelqu'un d'éclairé dans ce domaine pouvait m'aider à résoudre ceci Smiley confused

Merci infiniement
C'est dû à ta règle de redirection.

Rewriterule ^(.*)  http://www.ndd.com/$1  [QSA,L,R=301]


La partie (.*) est une expression régulière. Les parenthèses définissent une zone de capture et le .* signifie "n'importe quel caractère plusieurs fois".

La partie $1 quand à elle indique de placer à cet endroit la première valeur capturée par l'expression précédente.

Si tu veux rediriger à la racine du site du doit donc simplement écrire :

Rewriterule ^(.*)  http://www.ndd.com/  [QSA,L,R=301]

Modifié par moust (21 Mar 2014 - 13:02)