:www.new.domain.com
に厳密に等しいかどうかをテストするための正しい方法(違いまで)場合のいずれか
RewriteCond %{HTTP_HOST} ^www\.new\.domain\.com$ [NC]
又は前記
RewriteCond %{HTTP_HOST} =www.new.domain.com [NC]
、それらのエラーべきはあなたの書き換えルールの動作を停止しません。元のRewriteCondはwww.new.domain.com
と一致します。ちょうど良いものもあります(wwwXnewYdomainZcomFOOBAR
など)。実際に、私は私自身の.htaccess
ファイル内のルールの非常によく似たセットを持って、彼らはうまく動作:
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} !^vyznev\.net$
RewriteCond %{HTTP_HOST} ^(www\.)?vyznev\.net$ [NC]
RewriteRule ^(.*) http://vyznev.net/$1 [NS,L,R=permanent]
はあなたのコードと私の間の違いのほとんどは、純粋に化粧品です。 RewriteBase
指令がない場合は、私が見ることができる唯一の潜在的に重大な問題です。後で潜在的な問題を避けるためだけに、1つを追加する必要があります。それでも、私が言うことができる限り、あなたが期待しているURLにないかもしれないとしても、少なくとものリダイレクトを得ることを止めてはいけません。
奇妙なことに...あなたのRewriteCondで少し壊れた正規表現の構文にもかかわらず、この_should_は機能します。この前に.htaccessファイルに他のRewriteRulesがありますか?もしそうなら、多分何らかの妨げになっているかもしれません(例えば、[L]フラグを探してください...) –
ファイルの先頭に...何故、正規表現が壊れているのでしょうか? –
rootにphpinfo()を追加して、http_HOSTのどの値が報告されているかを確認するために 'http:// www.new.domain.com/phpinfo.php'を実行しましたか?あなたのブラウザは301をキャッシュしていて、クライアント側でローカルに実行している可能性があります。 – TerryE