2017-06-05 6 views
3

Dies sind meine aktuellen Regeln in .htaccess. Im Grunde möchte ich domain1.com-domain2.com mit Ausnahme der folgenden Bedingungen meine gesamte Website umleiten:.htaccess Ausnahmeregeln nicht funktioniert

  1. alle Dateien/Seiten innerhalb /offers Ordner

  2. die Seite bei /page/company-a

Wenn Ich greife auf www.domain1.com/page/company-a, ich werde stattdessen zu domain2.com/index.php umgeleitet.

Jeder Ratschlag geschätzt.

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] 
+0

Haben Sie weitere Anweisungen in Ihrer '.htaccess' Datei? – MrWhite

+0

ja, ich habe die Frage damit bearbeitet. – Slay

+0

Das gleiche Prinzip gilt auch für diese andere verwandte Frage: https://stackoverflow.com/questions/44282823/htaccess-conditional-https-for-static-pages – MrWhite

Antwort

2

Verwenden THE_REQUEST Variable statt REQUEST_URI. THE_REQUEST Variable stellt die ursprüngliche Anfrage dar, die Apache von Ihrem Browser erhalten hat und wird nach der Ausführung einiger Umschreibungsregeln nicht überschrieben.

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] 

Stellen Sie sicher, dass Sie den Cache Ihres Browsers während des Tests löschen.

+0

Hallo! hit this wenn ich es debugge .. Die Debugging-Protokolle dort zeigen "Diese Variable wird nicht unterstützt:% {THE_REQUEST}" – Slay

+0

hi! Wie kann ich den Speicherort für die Debug-Protokolle finden? – Slay

+1

Obwohl nicht der Grund für diesen jüngsten Fehler ... gibt es einen Tippfehler: Sie fehlen eine geschweifte Klammer bei der RewriteRule Substitution. – MrWhite