0

私のサイト (domain.com) は現在 /var/www/ にあり、その IP: 88.88.88.88 から直接アクセスすることもできます。

取得したい: ユーザーが IP を入力すると: 88.88.88.88、88.88.88.88/reboot/ にリダイレクトされます。

ユーザーが完全なドメイン名を入力すると、現在のようにサイトが表示されます。

私は.htaccessで試しました

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} 88.88.88.88
RewriteRule .* http://88.88.88.88/reboot/ [R=301,L]
RewriteCond %{HTTP_HOST} ^mysite.com
RewriteRule .* http://www.mysite.com [R=301,L]

うまくいきません:

www.mysite.com :GOOD

mysite.com: 良い

88.88.88.88 -> 88.88.88.88 にリダイレクト/再起動: 良好

しかし、それはエラーを生成します: エラー 310 (net::ERR_TOO_MANY_REDIRECTS)

どんな手掛かり ?

4

2 に答える 2

1

88.88.88.88/rebootにいるとき、 HTTP_HOST はまだ88.88.88.88と同じです。

REQUEST_URI に応じて RewriteCond ルールを追加してみて/rebootください/reboot

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} 88.88.88.88
RewriteCond %{REQUEST_URI} !^/reboot/
RewriteRule ^(.*)$ http://88.88.88.88/reboot/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^mysite.com
RewriteRule .* http://www.mysite.com [R=301,L]
于 2012-08-22T09:19:21.013 に答える
0

ERR_TOO_MANY_REDIRECTSルールがループするために発生します。リクエストがホスト 88.88.88.88 に来るたびに、それを 88.88.88.88/reboot/ にリダイレクトしますが、 /reboot/ uri もそのホスト上にあるため、再度リダイレクトしてループします。

/ をホスト 88.88.88.88 の /reboot/ にのみリダイレクトする場合は、次のように変更する必要がありますRewriteRule

RewriteCond %{HTTP_HOST} 88.88.88.88
RewriteRule ^/$ http://88.88.88.88/reboot/ [R=301,L]

ただし、 /reboot/ 以外のすべてをリダイレクトする場合は、条件 ( RewriteCond)を追加する必要があります。

RewriteCond %{HTTP_HOST} 88.88.88.88
RewriteCond %{REQUEST_URI} !^/reboot/
RewriteRule ^/$ http://88.88.88.88/reboot/ [R=301,L]

(残りのルールはそのままにしておきます)。

于 2012-08-22T09:21:33.657 に答える