URL Rewriting et redirection 301 : compatibilité ?

Thelys92

Nouveau WRInaute
Bonjour à tous,

Je cherche à faire 2 choses différentes sur un même site :
- d'une part, rediriger http://nomdemonsite.com vers http://www.nomdemonsite.com (redirection 301)
- d'autre part, utiliser un composant d'URL Rewriting (le site étant conçu sous Joomla, il s'agit de sh404SEF).

Pour la redirection 301, j'utilisais dans un fichier .htaccess :
Code:
RewriteEngine on

RewriteCond %{HTTP_HOST} ^nomdemonsite.com$
RewriteRule ^(.*) http://www.nomdemonsite.com/$1 [QSA,R=301]

Je souhaite en plus réécrire des URL et sh404SEF impose l'insertion dans le .htaccess d'un code supplémentaire. J'obtiens au final le .htaccess suivant :

Code:
RewriteEngine on

RewriteCond %{HTTP_HOST} ^nomdemonsite.com$
RewriteRule ^(.*) http://www.nomdemonsite.com/$1 [QSA,R=301]

############# Use this section if you are using a 3rd party (Non Joomla! core) SEF extension - e.g. OpenSEF, 404_SEF, 404SEFx, SEF Advance, etc
#
RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php
#
########## End - 3rd Party SEF Section

Ce type de fichier .htaccess fonctionne parfaitement sur l'un de mes sites hébergés chez Infomaniak. Mais en l'utilisant chez OVH, problème : il semble y avoir un conflit entre les deux moitiés du .htaccess : quand je laisse la redirection 301 seule mais que j'enlève la réécriture sh404SEF, http://nomdemonsite.com est bien redirigé vers http://www.nomdemonsite.com. De même, quand j'enlève la redirection 301 mais que je laisse la réécriture des URL par sh404SEF, celle-ci fonctionne correctement. Par contre, les deux ensemble ne fonctionnent pas.

Concrètement, l'erreur se manifeste par deux choses :
- d'abord, il n'y a aucune redirection de http://nomdemonsite.com vers http://www.nomdemonsite.com.
- ensuite, sur Internet Explorer, l'utilisation de l'adresse http://nomdemonsite.com renvoie une erreur : "Internet Explorer ne peut pas afficher cette page Web".

Quelqu'un comprend-il l'origine de ce conflit et comment le résoudre pour que la redirection s'opère convenablement sans que je sois obligée de sacrifier l'URL Rewriting (ou vice versa !) ? Je bloque totalement parce que ça marchait chez Infomaniak en l'état... je ne sais pas s'il y a un fonctionnement propre à OVH.

Merci d'avance pour votre aide !
 

Thelys92

Nouveau WRInaute
Pour info, j'ai résolu le problème toute seule...

Concernant la redirection, au lieu d'utiliser
Code:
RewriteCond %{HTTP_HOST} ^nomdemonsite.com$
RewriteRule ^(.*) http://www.nomdemonsite.com/$1 [QSA,R=301]

J'ai mis
Code:
RewriteCond %{HTTP_HOST} ^(nomdemonsite.com*)$
RewriteRule ^(.+)?$ http://www.%1/$1 [R=301,L]
 

Discussions similaires

Haut