2017-02-22 41 views
0

我试图重定向到包含index.php等的/ hc /目录。浏览器显示ERR_TOO_MANY_REDIRECTS错误。请告诉我我在这里做错了什么。Laravel 5.X - 使用IP地址时出现太多重定向错误

这是工作得很好,当我在我的旧主机中使用域名。现在,当我使用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] 
+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] 
+0

你能否告诉我一个解决方法? – logeeks

+0

这取决于规则应该做什么。就目前而言,这条规则实际上什么都不做,你可以将其删除。 –

+0

谢谢,我在public_html文件夹中有一个laravel'/ hc'目录,我需要将每个请求重定向到'hc'目录,而hc目录又会调用相应的控制器。它似乎不适合我。我已经指出了线条,但它仍然不适合我。 – logeeks