3

文件夹结构:

/index/
/upload/
/something/

这些文件夹中没有 .htaccess(也不应该)。

访问http://site.com/something时,它会重定向到http://site.com/something/url=something,这是不需要的。

RewriteEngine on

# RewriteBase /base/ #

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]

添加另一个重写条件以在文件夹末尾附加“/”会产生额外的(和不必要的)请求,也不是很好。

如何编写规则,以便将文件夹直接发送到前端控制器而没有任何不需要的重定向?

4

2 回答 2

0

一个解决方案是。

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])$ $1/ [NC,L,R=301]

但这会导致额外的重定向(首先重定向到某物/,另一个重定向到 index.php?url...)......不是最佳的。

无论如何,一个好的解决方案只是一个重定向。

于 2013-04-25T09:11:31.827 回答
0

尝试添加附加条件以排除现有目录:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
于 2013-04-25T08:58:47.147 回答