.htaccess简单重定向和太多重定向:如何解决?

.htaccess简单重定向和太多重定向:如何解决?,.htaccess,.htaccess,我的网站(domain.com)现在位于/var/www/ 您也可以直接通过其IP访问:88.88.88.88 我想获得: 当用户输入IP:88.88.88.88时,它会重定向到88.88.88.88/重新启动/ 如果用户输入完整的域名,它会像现在一样显示站点 我尝试了.htaccess RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} 88.88.88.88 RewriteRule .* http://88.88.88.88/reb

我的网站(domain.com)现在位于/var/www/ 您也可以直接通过其IP访问:88.88.88.88

我想获得: 当用户输入IP:88.88.88.88时,它会重定向到88.88.88.88/重新启动/

如果用户输入完整的域名,它会像现在一样显示站点

我尝试了.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:很好

mysite.com:很好

88.88.88.88->重定向到88.88.88.88/重新启动:良好

但随后它会生成一个错误:error 310(net::ERR\u太多\u重定向)


有什么线索吗?

当您启动88.88.88/reboot时,您的HTTP\U主机仍然等于88.88.88.88

根据请求URI,尝试添加重写条件规则,该规则将所有非
/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]

ERR\u TOO\u MANY\u重定向
是因为您的规则循环。 每当请求到达主机88.88.88.88时,您都会将其重定向到88.88.88.88/reboot/,但/reboot/uri也在该主机上,因此它会再次重定向并循环

如果您只想在主机88.88.88.88上重定向/到/重新启动,则需要将
重写规则更改为:

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]