.htaccess问题-[L]标志任何方式来简化

a2mppw5e  于 2023-10-23  发布在  其他
关注(0)|答案(1)|浏览(110)

我通常使用MVC路由,但我必须在一个非MVC的网站上工作,需要添加一个新的功能。
以下是我的commnads工作:

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

这基本上就是说做上面的一切,但最后一个是后备。
有什么办法可以做到吗?

kmynzznz

kmynzznz1#

你必须使用

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

前一条规则。前一条规则将请求的URL重写为可以访问的有效(php)文件,因此条件将变为false。如果之前没有匹配的规则,但请求的URL是一个有效的文件(例如图像),则此规则也不会被处理。
你还应该省略最后一条规则中的斜杠:^(.*)/$,因为否则这条规则只会重写带有结尾斜杠的url。

相关问题