我通常使用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
这基本上就是说做上面的一切,但最后一个是后备。
有什么办法可以做到吗?
1条答案
按热度按时间kmynzznz1#
你必须使用
前一条规则。前一条规则将请求的URL重写为可以访问的有效(php)文件,因此条件将变为false。如果之前没有匹配的规则,但请求的URL是一个有效的文件(例如图像),则此规则也不会被处理。
你还应该省略最后一条规则中的斜杠:^(.*)/$,因为否则这条规则只会重写带有结尾斜杠的url。