htaccess变量不适用于username


htaccess variables not working with username

所以我有一个重写用户名的规则,如下

RewriteEngine On
RewriteBase /test/
Options FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/?([A-Z0-9a-z'~'^'(')_'-'+'{'}'[']'|:'<'>'.]+)$ index.php?user=$1 [L]

这很好用,我可以回显$_GET['user'],没问题。当我向重写规则添加另一个变量时,问题发生了,如下所示-

RewriteRule ^/?([A-Z0-9a-z'~'^'(')_'-'+'{'}'[']'|:'<'>'.]+)$/?extra$ index.php?user=$1&system_page=extra [L]

我希望能够访问http://localhost/test/username/extra并返回$_GET['system_page'],结果为"extra",但我收到了404错误。

非常感谢在这方面的任何帮助。

好的,想好了。对于遇到相同问题的任何人,解决方案是删除用户名定义后的"$"。

RewriteRule ^/?([A-Z0-9a-z'~'^'(')_'-'+'{'}'[']'|:'<'>'.]+)$/?extra$

应该是-

RewriteRule ^/?([A-Z0-9a-z'~'^'(')_'-'+'{'}'[']'|:'<'>'.]+)/?extra$