0

问题:

当它们相似时我如何编写规则?

我的规则:

RewriteRule ^blog/([0-9]+)/[-0-9a-zA-Z]+/?$ index.php?action=blog&postID=$1 [NC]
RewriteRule ^blog/([0-9]+)/[-0-9a-zA-Z]+/?$ index.php?action=blog&category=$1 [NC]

我想要完成的是:

domain.com/blog/1/title-of-postdomain.com/blog1/name-of-category

这可能吗?我有哪些选择?

4

1 回答 1

1

由于 URI 略有不同,您应该可以在以下位置使用它.htaccess

RewriteRule ^blog/([0-9]+) index.php?action=blog&postID=$1 [L]
RewriteRule ^blog([0-9]+)/ index.php?action=blog&category=$1 [L]

我们不需要[NC]标志,因为我们只匹配一个数字。[L]如果匹配,该标志告诉 Apache 停止处理。由于您没有对标题做任何事情,因此无需一直搜索到行尾。一旦我们找到postID类别,我们应该有我们所有的信息。

要同时匹配两者,您可以在单个规则中尝试此操作。

RewriteRule ^blog([0-9]+)/([0-9]+) index.php?action=blog&category=$1&postID=$2 [L]
RewriteRule ^blog/([0-9]+) index.php?action=blog&postID=$1 [L]
RewriteRule ^blog([0-9]+)/ index.php?action=blog&category=$1 [L]

如果您正在设置,Virtual Hosts那么您必须添加前面的斜杠:

RewriteRule ^/blog/([0-9]+) /index.php?action=blog&postID=$1 [L]
RewriteRule ^/blog([0-9]+)/ /index.php?action=blog&category=$1 [L]
于 2013-05-05T06:21:55.057 回答