URL重写更精确的匹配,而不是刚刚以相同字符串开头的URL

时间:2015-09-17 17:54:13

标签: .htaccess mod-rewrite

假设我有phpbb3论坛软件,我想要美化一些网址。我把它放在我的htaccess中:

RewriteRule ^cake viewforum.php?f=5&%{QUERY_STRING} [L]

适用于domain.tld/cakedomain.tld/cake/,但它也会捕获domain.tld/cake-recipesdomain.tld/cake-recipes/,因此会重写它们。

我该如何编写它以便它只匹配那个确切的URL,而不是以该字符串开头的URL?

1 个答案:

答案 0 :(得分:0)

您需要添加$才能界定规则模式。

RewriteRule ^cake/?$ viewforum.php?f=5 [L,QSA]

以上规则现在仅匹配domain.tld/cakedomain.tld/cake/

此外,您可以通过添加%{QUERY_STRING}标记(它以相同的方式,但以更优雅的方式添加)来避免使用QSA