Laravel 5.X - 使用IP地址时重定向错误太多

时间:2017-02-22 18:25:21

标签: .htaccess laravel-5.3

我正在尝试重定向到包含index.php等的/ hc /目录。浏览器显示ERR_TOO_MANY_REDIRECTS错误。请告诉我这里我做错了什么。

当我在旧托管中使用域名时,这工作得很好。现在,当我使用IP时,它失败了。

# Turn on URL rewriting
RewriteEngine On

# Installation directory
RewriteBase /hc/

# Protect hidden files from being viewed
<Files .*>
Order Deny,Allow
Deny From All
</Files>

RewriteCond %{HTTP_HOST} ^45.117.122.107$ [NC]
RewriteRule ^(.*)$ http://45.117.122.107/$1 [L,R=301] 

# Protect application and system files from being viewed 
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]

# Allow any files or directories that exist to be displayed directly 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL 
RewriteRule .* index.php?/$0 [PT,L,QSA]

1 个答案:

答案 0 :(得分:0)

此规则的问题

RewriteCond %{HTTP_HOST} ^45.117.122.107$ [NC]
RewriteRule ^(.*)$ http://45.117.122.107/$1 [L,R=301] 

是它将^(.*)$重定向到自己$1。然后,客户端再次请求相同的URL,并重定向到自身,并再次请求相同的URL,依此类推......使用域名不会改变这一点。

要避免此重定向循环或任何其他循环,您需要一些条件,它会提前退出或跳过此规则。

要将所有内容重定向到/hc,您可以使用此规则

RewriteRule !^hc/ /hc%{REQUEST_URI} [R,L]

如果请求尚未针对hc,并且未重定向,则此规则首先检查。

然后将/hc/的每个请求重写为index.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php?/%{REQUEST_URI} [L]