htaccess第3个参数不起作用

时间:2015-05-29 09:32:49

标签: php apache .htaccess mod-rewrite

我的.htaccess中有一条现有规则,说

RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)$ member.php?do=$1&uid=$2&id=$3 [L]

当我访问像http://mysite/posts/3这样的网址时,第二个参数工作正常..丑陋的网址是:

http://mysite/member.php?do=posts&uid=3

但是当我尝试添加像这样的第三个参数时:

http://mysite/posts/3/2

Ugly Url是

http://mysite/member.php?do=posts&uid=3&id=2

它不再工作了......我找不到ERROR 404 Object。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

重写规则

RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)$ member.php?do=$1&uid=$2&id=$3 [L]

错了。它只捕获“posts / 3”但从不“posts / 3/2”。

您可以尝试添加2个规则,例如

RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)$ member.php?do=$1&uid=$2 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)/([0-9]+)$ member.php?do=$1&uid=$2&id=$3 [L]