web-dev-qa-db-ja.com

wwwではなくIPをリダイレクトする方法

Www.domain.comまたはdomain.comをwww.domain.com/temp.htmlにリダイレクトしようとしています

私は次のコードを使用しています:

RewriteCond %{HTTP_Host} ^.*$
RewriteRule ^/?$ "http\:\/\/www\.domain\.com\/temp\.html" [R=301,L]

動作しますが、IPをリダイレクトしたくありません。だから誰かがドメインの静的IPを入力した場合、www.domain.com/temp.htmlにリダイレクトされたくない

誰でもこれを処理するコードを持っていますか?

4
Chad T Parson

HTTP_Host条件を変更することにより、その除外を行うことができます。

RewriteCond %{HTTP_Host} !^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$
RewriteRule ^/?$ "http\:\/\/www\.domain\.com\/temp\.html" [R=301,L]

または他の方法:

RewriteCond %{HTTP_Host} ^(www\.)?domain\.com$ [NC]
RewriteRule ^/?$ "http\:\/\/www\.domain\.com\/temp\.html" [R=301,L]
2
Jon Lin
RewriteCond %{HTTP_Host} ^domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L] 

すべてに一致する^。* $を使用しないでください。さらに、リダイレクトループが発生する可能性があります。

1
Abhishek Dujari

これを使用できます。ファイルにドメイン名自体を入力しなくても機能するため、どのプロジェクトでも使用できます。

RewriteCond %{HTTP_Host} !^www\. [NC] [or]
RewriteCond %{HTTP_Host} !^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$
RewriteRule .? http://www.%{HTTP_Host}%{REQUEST_URI} [R=301,L]
0
Ashraf