1

我有一个正则表达式如下

http://www.abc.com/signup.php?id=2

RewriteRule ^signup/([a-z]+)/([a-z]+)$ /signup.php?$1=$2 [L]

但这不起作用?任何人都可以帮助我。.htaccess 文件中有什么要启用的吗?

4

2 回答 2

2

当您还传递数字时,您也应该在正则表达式中匹配它们:

RewriteRule ^signup/([a-z0-9]+)/([a-z0-9]+)$ /signup.php?$1=$2 [L]

您可能还想包含其他字符,或者更确切地说使用元类,例如\w.

于 2013-02-12T14:32:37.487 回答
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(但不重定向)。

于 2013-02-12T14:32:30.573 回答