正则表达式url重写不适用于带空格的参数

时间:2015-01-07 16:40:34

标签: regex apache .htaccess url rewrite

我正在尝试改写这个 网址:
npc.php ID = 3141&放大器;名称= A +酷炫+帅哥 至     /npcview-3141-a-cool-guy.html

使用以下规则

RewriteRule npcview-(.*)-(.*)\.html$ npc?npcid=$1&name=$2

它适用于没有空格的参数,例如

npcview-341-man.html 

服务器输出符合预期:

Array ( [npcid] => 341[name] => Man) 

但如果我用空格做某事,例如

npcview-881-a-cool-guy.html

我得到了

 Array ( [npcid] => 8834-a-cool [name] => guy.html ) 

我做错了什么?

1 个答案:

答案 0 :(得分:1)

问题是在你的正则表达式中使用.*。试试这个规则:

RewriteRule npcview-([^-]+)-(.+?)\.html$ npc?npcid=$1&name=$2 [L,QSA]