[英]htaccess rewriterule returns incorrect parameter when the url ends with slash
我对为什么URL以斜杠结尾时返回错误参数感到有些困惑。
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
的末尾删除斜杠时,它会正确返回65
和blitzen12
。
谁能向我解释我做错了什么?
您应该这样做:
RewriteRule ^account/dashboard/([^/]+)/([^/]+)/?$ ./account/index.php?page=dashboard&aid=$1&name=$2 [L,QSA]
这与贪婪的重复有关 。 基本上,点匹配任何字符,包括斜杠(/)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.