2016-10-28 9 views
0

indexを含むほとんどのページをfirstdomain.comからseconddomain.comにリダイレクトしています。ページをリダイレクトするhtaccess - クエリがない限りリダイレクト

、私が使用:

Redirect 301 /faq http://www.seconddomain.com/faq 
Redirect 301 /contact http://www.seconddomain.com/contact 

インデックスをリダイレクトするには、私が使用します。

RewriteRule ^$ http://www.seconddomain.com/ [R=301,L] 

、問題は、私はhttp://www.firstdomain.com/?query=9328のままにしておきたいということです。上記のコードでは、リダイレクト先はhttp://www.seconddomain.com/?query=9328です。

私の質問は次のとおりです。質問が含まれていない限り、インデックスをリダイレクトするにはどうすればよいですか?

答えて

0

これは動作します。

+0

あなたの元の質問に答えられない点を除いて - これは、問合せパラメータが完全に省略された場合にのみリダイレクトされます。これは、要求したものではありません。 – TerryE

0

プレフィックスクエリ文字列に負の先読みを使用してRewriteCondRewriteRule、例えば

RewriteCond %{QUERY_STRING} (?!query=9328) 
RewriteRule ^$ http://www.seconddomain.com/ [R=301,L] 

クエリ文字列にパターンが含まれている場合、これはリダイレクトをスキップします。 otherqueryなどの有効なクエリパラメータがある場合は、\bのブックエンドでパターンを固定することができます。

RewriteCond %{QUERY_STRING} ^$ 
RewriteRule ^$ http://www.seconddomain.com/ [R=301,L] 

私はそれが正しいか、最善の方法だ場合はわかりませんが、それはそれは、クエリ文字列が続いていますしない限り、インデックスをリダイレクトします:

+0

ありがとうございました! いくつかの問題点:このコードをオンラインのhtaccessテスターhtaccess.mwl.beでテストすると、出力は 'seconddomain.com/?query = 9328'になります。 また、URLにクエリがある場合は、リダイレクトしたくありません。 –

関連する問題