2012-08-22 31 views
0

我的網站(domain.com)現在位於成在/ var/WWW/ ,你也可以直接通過其IP訪問:88.88.88.88的.htaccess簡單的重定向和太多rediercections:如何解決呢?

我想獲得: 當用戶輸入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:GOOD

88.88.88.88 - >重定向到88.88.88.88/reboot:GOOD

但它會產生一個錯誤:錯誤310(網:: ERR_TOO_MANY_REDIRECTS)

任何線索?

回答

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] 
0

ERR_TOO_MANY_REDIRECTS來,因爲你的規則循環。 每當一個請求到達主機88.88.88.88,您重定向它88.88.88.88/reboot/,但/重啓/ URI也是在該主機上,因此它再次和循環重定向。

如果你只是想重定向/到/重啓/主機88.88.88.88,你需要改變你的RewriteRule這樣:

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

但是,如果你希望一切之外重定向/重啓/,那麼你需要添加一個條件(RewriteCond):

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

(守規則完好的其餘部分)。