【发布时间】:2012-10-24 21:35:38
【问题描述】:
这是我网站的个人资料页面的 htaccess 规则:
RewriteRule ^users/([0-9]+)/?(.+)?/?(.+)? profile.php?id=$1&slug=$2&tab=$3&%{QUERY_STRING}
当您点击用户个人资料上的标签时,例如收藏夹:
/users/83028/nathan-johnson/favorites
根据var_dump,名称为slug 的$_GET 变量正在接收nathan-johnson/favorites 而不仅仅是nathan-johnson,并且tab 变量为空:
array(3) {
["id"]=> string(5) "83028"
["slug"]=> string(24) "nathan-johnson/favorites"
["tab"]=> string(0) "" }
看起来问题出在我的 htaccess 正则表达式(上图),但我没有看到它的问题。
提前致谢。
【问题讨论】:
-
我不肯定什么?(.+)?应该这样做,但是当我做类似的事情时,我通常使用 ([^/]*) 来代替它
-
@JohnB
?'s 使匹配在它之前可选,因此不需要在那里使规则起作用。.匹配任何字符(+表示需要的字符数)。
标签: php .htaccess mod-rewrite get