Redirection permanente via des règles de réécriture apache

J’essaie d’écrire une règle pour redirect de manière permanente un nom de domaine vers un autre nom de domaine

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

Cela ne fonctionne que si l’utilisateur se souvient de taper www, si l’utilisateur ne tape pas www dans l’URL, la page se chargera mais les liens de l’image seront brisés.

Est-ce que quelqu’un sait comment adapter la règle ci-dessus à cela fonctionne avec et sans www?

J’utilise une configuration LAMP, apache 2 sur redhat.

Vous pouvez fournir plusieurs conditions de réécriture optionnelles avec [OR]:

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

Cela devrait faire l’affaire. Le premier Rewrite-Condition se déclenche, si www est présent, le deuxième se déclenche, si www a été oublié.

La redirection ne fonctionnait pas pour moi et je devais l’ajuster, ci-dessous est une version de travail basée sur la réponse de @Demento.

 # Parmenent redirect to webdesign.danols.com of all pages RewriteEngine on RewriteCond %{HTTP_HOST} ^www.kingston-web-design.com [OR] RewriteCond %{HTTP_HOST} ^kingston-web-design.com RewriteRule ^(.*)$ http://webdesign.danols.com.com$1 [R=301,L] 

Si vous ne vous souciez pas du début du nom d’hôte, ne racine pas le regex, vérifiez simplement qu’il se termine par companyname1.com.

En ce qui concerne la barre oblique principale, ajoutez-la simplement à la racine de votre regex en option.

 RewriteCond %{HTTP_HOST} companyname1.com$ RewriteRule ^/?(.*) http://www.companyname2.com/$1 [R=permanent,L] 

Ou simplement en utilisant une regex simple:

 RewriteCond %{HTTP_HOST} ^(www.)?companyname1\.com$ RewriteRule ^(.*)$ http://www.companyname2.com/$1 [R=301,L]