当url以斜杠结尾时,htaccess rewriterule返回错误的参数

时间:2014-04-12 08:20:47

标签: php apache .htaccess mod-rewrite

当网址以斜线结尾时,我对它返回错误参数的原因感到有点困惑。

htaccess的

RewriteRule ^account/dashboard/(.*)/(.*)$ ./account/index.php?page=dashboard&aid=$1&name=$2 [L,QSA] 

执行http://example.com/account/dashboard/65/blitzen12/

在页面中,我可以使用$_GET['aid]返回65/blitzen12$_GET['name]返回空

但是当我在网址的blitzen12末尾删除斜杠时,它会正确返回65blitzen12

任何人都可以向我解释我做错了什么吗?

1 个答案:

答案 0 :(得分:5)

你应该这样做:

RewriteRule ^account/dashboard/([^/]+)/([^/]+)/?$ ./account/index.php?page=dashboard&aid=$1&name=$2 [L,QSA]

它与greedy repetition有关。基本上,点匹配任何字符,包括斜杠(/)