Ce sont mes règles actuelles dans .htaccess
. Fondamentalement, je veux redirect mon site entier de domain1.com
vers domain2.com
exception des conditions suivantes:
tous les fichiers / pages à l’intérieur du dossier /offers
la page sur /page/company-a
Lorsque domain2.com/index.php
à www.domain1.com/page/company-a
, je suis redirigé vers domain2.com/index.php
place.
Tout conseil apprécié.
RewriteCond %{REQUEST_URI} !^/offers RewriteCond %{REQUEST_URI} !^/page/company-a RewriteCond %{HTTP_HOST} ^www\.domain1\.com$ [NC] RewriteRule ^(.*)$ http://www.domain2.com/$1 [L,R=301] # Pass all requests not referring directly to files in the filesystem to # index.php. Clean URLs are handled in drupal_environment_initialize(). RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !=/favicon.ico RewriteRule ^ index.php [L]
Utilisez la variable THE_REQUEST
au lieu de REQUEST_URI
. THE_REQUEST
variable THE_REQUEST
représente la demande d’origine reçue par Apache à partir de votre navigateur et elle n’est pas écrasée après l’exécution de certaines règles de réécriture.
RewriteEngine On RewriteCond %{THE_REQUEST} !\s/+(offers|page/company-a) [NC] RewriteCond %{HTTP_HOST} ^(?:www\.)?domain1\.com$ [NC] RewriteRule ^ http://www.domain2.com%{REQUEST_URI} [L,R=301,NE] # Pass all requests not referring directly to files in the filesystem to # index.php. Clean URLs are handled in drupal_environment_initialize(). RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !=/favicon.ico RewriteRule ^ index.php [L]
Veillez à effacer le cache de votre navigateur pendant le test.