Les règles d’exception .htaccess ne fonctionnent pas

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:

  1. tous les fichiers / pages à l’intérieur du dossier /offers

  2. 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.