2014-09-29 113 views
0
<Directory /> 
     Options FollowSymLinks 
     AllowOverride None 
     Require all denied 
</Directory> 

<Directory /usr/share> 
     AllowOverride None 
     Require all granted 
</Directory> 

<Directory /var/www/> 
     Options Indexes FollowSymLinks 
     AllowOverride None 
     Require all granted 
</Directory> 

<Directory /var/www/html/portal> 
     Options +SymLinksIfOwnerMatch 
     RewriteEngine On 
     RewriteCond %{REQUEST_URI} !(/$:\.) 
     RewriteRule (.*) %{REQUEST_URI}/ [R=301,L] 
     RewriteCond %{REQUEST_FILENAME} !-f 
     RewriteCond %{REQUEST_FILENAME} !-d 
     RewriteRule ^(.*)$ dashboard.php?url=$1 [L] 
</Directory> 

最后目录定义导致无限循环,/由铬触发重定向循环错误之前附加到URL大约10倍。htaccess的无限循环,追加/到URL直到重定向循环

我不知道为什么会发生这种情况,因为我在另一台服务器上使用了相同的设置,并且它工作正常。这有什么不对吗?我所要做的只是在请求的URL后追加一个/(如果其中一个不存在)。

任何想法,为什么这是循环?

回答

1

尝试修改此行:

RewriteCond %{REQUEST_URI} !(/$:\.) 

要这样:

+0

谢谢!这是有效的,你会介意解释一下这个改变到什么程度? – jskidd3 2014-09-29 11:05:58

+0

@ jskidd3我认为关键问题是您使用冒号而不是垂直线。看看我和你的。看起来像是我的错字。 – JakeGould 2014-09-29 12:14:59

+0

啊,是的,这是有道理的,但你也改变了斜线和其他字符的顺序,这会有什么不同,或者它只是管道错字? – jskidd3 2014-09-29 12:29:09