【发布时间】:2012-02-28 13:14:35
【问题描述】:
我有一个有效的重写规则,可以从 URL 中隐藏 index.php?dir=。
例如,如果我尝试
www.example.com/folder/dir1/
将其重写为
www.example.com/folder/index.php?dir=dir1/
那很好!
问题是如果我从 URL 中删除尾部斜杠,即
www.example.com/folder/dir1
它进入重定向循环!
我的完成 htaccess 是:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /folder
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
RewriteCond %{QUERY_STRING} ^dir=(.*)$ [NC]
RewriteRule ^ %1? [L,R=301,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)/? index.php?dir=$1 [L,QSA]
请指教?
【问题讨论】:
-
不确定,但请尝试将
RewriteRule ^(.+)/? index.php?dir=$1 [L,QSA]更改为RewriteRule ^(.+)? index.php?dir=$1 [L,QSA] -
你是说最后一条规则中的
RewriteCond %{REQUEST_FILENAME} !-d吗? -
@Ofir:不,它没有帮助!情况保持不变..
-
@anubhava:没有!故意的..
-
您可以尝试添加
DirectorySlash Off