2010-10-23 2 views
0

J'essaie de faire une redirection à partir d'une version non-www du lien vers le www. Son fonctionnement bien pour quelque chose comme http://mywebsite.com mais il échoue pour une demande comme http://mywebsite.com/artists/metallica/ ou même un complexe. L'ensemble du fichier .htaccess est ci-dessous. Des indices?Redirection ne fonctionnant pas pour les règles de réécriture complexes (.htaccess)

Options +FollowSymLinks 

RewriteEngine On 

RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 

RewriteCond %{REQUEST_URI} !(.*).html 

RewriteCond %{REQUEST_URI} !(.*)/$ 

RewriteRule ^(.*)$ http://mywebsite.com/$1/ [L,R=301] 

RewriteRule ^artists/([^/-]+)-p([^/]+)/$ /artists.php?l=$1&p=$2 [QSA,L] 

RewriteRule ^artists/([^/]+)/$ /artists.php?l=$1 [QSA,L] 

RewriteRule ^submit/$ /submit.php [QSA,L] 

RewriteRule ^users/$ /users.php [QSA,L] 

RewriteCond %{THE_REQUEST} ^.*/index.php 

RewriteRule ^(.*)index.php$ http://www.mywebsite.com/$1 [R=301,L] 

Répondre

1

Essayez cette règle:

RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

Mais assurez-vous que vous mettez cette règle devant les règles qui font juste une réécriture interne. Sinon, une règle déjà réécrite en interne peut être redirigée vers l'extérieur.

+0

Merci Gumbo. Ça semble aller. – Psyche

Questions connexes