mod重写具有特定长度的正则表达式

时间:2013-03-29 18:33:36

标签: php apache .htaccess

行。我在.htaccess文件中有这个正则表达式来重写/任何字母数字到index.php?id = alphanumeric string。

 RewriteEngine on

 RewriteRule ^([A-Z-a-z0-9]+)$ index.php?id=$1

我遇到的问题是当一些其他变量被添加到该字符串时,一切都停止工作。

例如:

www.someaddress.com/ABCDEFGH工作正常。

www.someaddress.com/ABCDEFGH&othervariable=123失败。

我知道我的字母数字字符串总是8个字符。有没有办法让正则表达式只匹配8并留下其余的字符串?

提前致谢。

2 个答案:

答案 0 :(得分:2)

试试这个:

 RewriteRule ^([A-Za-z0-9]{8}) index.php?id=$1

请注意-Z之间的a字符不是必需的

答案 1 :(得分:2)

这样的事情应该可以解决问题。你想删除$让它忽略其余的变量。

RewriteRule ^([A-Z-a-z0-9] {8})index.php?id = $ 1