2012-02-10 2 views
-1

に私は次のようにリダイレクトしようとしている:Redirct www2、非WWW、および代替ドメインwww.domain.com

domain.com => www.domain.com 
www2.domain.com => www.domain.com 
www.altdomain.com => www.domain.com 
altdomain.com => www.domain.com 

私の.htaccessファイルは、ほとんどの部分は動作しますが、次の場合は失敗:

www2.domain.com/about/ => www.domain.com/about/ 
www2.altdomain.com/about/ => www.domain.com/about/ 
altdomain.com/about/ => www.domain.com/about/ 

これは私の.htaccessファイルです。私は間違って何をしていますか?

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

RewriteCond %{HTTP_HOST} ^bupd\.me [NC] 
RewriteRule (.*) http://www.bupipedream.com/$1 [R=301,L] 

RewriteCond %{HTTP_HOST} ^bupipedream\.com [NC] 
RewriteRule (.*) http://www.bupipedream.com/$1 [R=301,L] 

RewriteCond %{HTTP_HOST} ^www2\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://www.bupipedream.com/$1 [R=301,L] 

ありがとうございます!

+0

あなたの書き換えはうまくいくようです。どのようなエラーが出ていますか? – ThinkingMonkey

+0

私がリストしたページの2番目のセットはリダイレクトされません。 –

+2

投稿したルールの上にいくつかのルールがありますか?また、これらの4つのルールは、これだけで置き換えることができます: 'RewriteCond%{HTTP_HOST}!^ www.bupipedream.com'' RewriteRule ^(。*)$ http://www.bupipedream.com/$1 [R = 301、L ] ' – Gerben

答えて

0

あなたのcond(1)は、www.で始まらないホストに一致しますので、あなたのテストベクトルはあなたの言う通りです。

最後に移動すると、bupipedreamマップが優先されます。

また、ルール内の正規表現が異なることに気付きました。この場合、^(.*)$(.*)と同じですが、検索の開始点を固定することは常に安全です。*は貪欲ですが、末尾の$は必要ありませんが、^(.*)$はあなたの意図がはっきりしています。

+0

ダニエル、なぜ受け入れられないの?少なくともあなたはあなたの問題が何であるか、なぜこれをやっているのかを述べるべきです。あなたが私または他のポスターの情報を私たちに与えるなら、あなたの問題を解決できるかもしれません。 – TerryE

関連する問題