.htaccess无限循环,追加/到URL直到重定向循环

时间:2014-09-29 01:42:55

标签: .htaccess

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

最后一个目录定义导致无限循环,在Chrome触发重定向循环错误之前,/会附加到网址大约10次。

我不确定为什么会这样,因为我在另一台服务器上使用了相同的设置并且工作正常。这有什么不对吗?我要做的就是在请求的网址后附加一个/(如果尚未存在)。

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

1 个答案:

答案 0 :(得分:1)

尝试更改此行:

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

对此:

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