.htaccess问题-[L]标志可以简化

时间:2019-03-05 16:31:19

标签: .htaccess url-rewriting flags mod

我通常使用MVC路由,但是我必须在非MVC的站点上工作,并且需要添加新功能。

这是我的常用命令:

RewriteRule ^blog/why-am-using-htaccess/$ viewBlog.php?blogHook=$1 [L]
RewriteRule ^blog/(.*) blogs.php [L]
RewriteRule ^(.*)/$ page.php?hookName=$1

我的问题是我必须在上面的所有内容上都使用[L]标志才能正常工作。我想基本上向

发出标志
RewriteRule ^(.*)/$ page.php?hookName=$1

这基本上说了上面的所有事情,但最后一个是后备。

有什么办法吗?

1 个答案:

答案 0 :(得分:1)

您必须使用

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

最后一条规则之前。第一条规则将请求的URL重写为可以访问的有效(php)文件,因此条件将变为false。如果之前没有匹配的规则,但是所请求的url是有效文件(例如图像),则该规则也不会得到处理。

您还应该在最后一个规则中省略斜杠:^(。*)/ $,因为否则该规则将仅重写带有结尾斜杠的url。