我有一个正则表达式,如下所示
http://www.abc.com/signup.php?id=2
RewriteRule ^signup/([a-z]+)/([a-z]+)$ /signup.php?$1=$2 [L]
但这不起作用?任何人都可以帮助我。在.htaccess文件中有什么东西可以启用吗?
答案 0 :(得分:2)
当您传递数字时,您也应该在正则表达式中匹配它们:
RewriteRule ^signup/([a-z0-9]+)/([a-z0-9]+)$ /signup.php?$1=$2 [L]
您可能还想包含其他字符,或者更确切地说使用元类,例如\w
。
答案 1 :(得分:0)
编辑后,试试这个:
RewriteEngine On
RewriteCond %{QUERY_STRING} id=(\d+)
RewriteRule ^signup\.php$ /signup/%1 [L,R=301]
RewriteRule ^signup/([0-9]+)$ /signup.php?id=$1 [L]
将/signup.php?id=123
重定向到/signup/123
,然后将其重新写回/signup.php?id=123
(但不会重定向)。