2017-03-23 22 views
1

urlnumberone.comとurlnumbertwo.comからのトラフィックを自分のサイトの特定のページにリダイレクトしたい。.htaccess特定のドメインを特定のページにリダイレクトする

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] 

現在のところ、両方のURLは、私が意図したページに移動するのではなく、単にユーザーを自分のサイトのホームページに招待しています。私は間違って何をしていますか?重要な場合は、サイトはWordPressサイトであり、WordPressのルールはこれらのリダイレクトの下にあり、コードの上にはありません。

答えて

1

私には2つの問題があると思います。 RewriteCond行に余分なドットがあるので、カッコで囲まれた部分は現在www(任意の文字)(リテラルドット)を意味します。一致する必要があるドメインのwwwバージョンと一致しないwww6.urlnumberone.comwww3.urlnumberone.comのようなドメインとのマッチングを試みています。

だから、私は交換するでしょう:

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

をして:

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

次に、RewriteRuleラインのために、私は.*で(空の文字列を置き換える)^$を変更します(パス全体を置き換える)、302または301のリダイレクトを使用します。 WordPressは既存のファイルやディレクトリではないすべてのURLを書き換えるので、間違ってリダイレクトループを作成するのは簡単です。したがって、301や302を使用すると、それを防ぐことができます。だから私は使用します。

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

をより良い答えを持ってそこにmod_rewriteのウィザードがあるかもしれませんが、この方法は、私の経験ではうまく動作します。

関連する問題