2017-03-23 3 views
1

Ich möchte jeden Verkehr von urlnumberone.com und urlnumbertwo.com auf ein paar bestimmte Seiten auf meiner Website umleiten..htaccess Redirect spezifische Domain auf bestimmte Seite

RewriteEngine on 
RewriteCond %{HTTP_REFERER} ^http://(www.\.)?urlnumberone\.com 
RewriteRule ^$ /thepath/tomypage/goeshere/ [L] 

RewriteEngine on 
RewriteCond %{HTTP_REFERER} ^http://(www.\.)?urlnumbertwo\.com 
RewriteRule ^$ /thesecond/pathgoeshere/ [L] 

Im Moment führen beide URLs den Benutzer einfach auf die Homepage meiner Website, anstatt auf die von mir beabsichtigten Seiten zu gehen. Was mache ich falsch? Wenn es darauf ankommt, ist die Seite eine WordPress-Seite und die WordPress-Regeln sind UNDER-Weiterleitungen, nicht über ihnen im Code.

Antwort

1

Ich denke, es gibt zwei Probleme. Es gibt einen zusätzlichen Punkt in den Zeilen RewriteCond, so dass der Teil in Klammern derzeit "www (beliebiges Zeichen) (literal-dot)" bedeutet, was verhindern würde, dass die www-Version der Domäne übereinstimmt, die Sie abgleichen müssen - es sei denn Sie versuchen, Domänen wie www6.urlnumberone.com und www3.urlnumberone.com zu entsprechen.

Also, ich würde ersetzen:

RewriteCond %{HTTP_REFERER} ^http://(www.\.)?urlnumberone\.com

mit:

RewriteCond %{HTTP_REFERER} ^http://(www\.)?urlnumberone\.com

nächste für die RewriteRule Linie, würde ich die ^$ ändern (eine leere Zeichenkette ersetzt) ​​mit .* (Ersetzen Sie den gesamten Pfad) und verwenden Sie eine Umleitung 302 oder 301. Da WordPress jede URL neu schreibt, die keine existierende Datei oder ein existierendes Verzeichnis ist, ist es leicht, Redirect-Loops aus Versehen zu erstellen, also sollte die Verwendung von 301 oder 302 dazu beitragen, dies zu verhindern. So würde ich verwenden:

RewriteRule .* /thepath/tomypage/goeshere/ [R=302,L]

Es kann mod_rewrite Assistenten sein gibt, die eine bessere Antwort haben, aber diese Methode funktioniert gut in meiner Erfahrung.