重写规则500错误问题正则表达式

时间:2015-04-23 15:03:31

标签: regex apache .htaccess mod-rewrite

有谁能让我知道为什么这个重写规则会给我带来问题?

RewriteRule ^used-trucks/equipment/all/([^ ]*)-([^ \.]*)/(.*)? /inventory/?cat=equipment&make=$1\%20$2 [R=301,L]

我对此比较陌生,我希望我有一些像

这样的变量
 used-trucks/equipment/all/allis-chalmers/0012001

具体而言

allis-chalmers

我想将它们转换为此

 allis\%20chalmers

所以他们通过reg ex变量会像这个

一样
 /inventory/?cat=equipment&make=allis\%20chalmers

所以他们在重定向中很好地转换

任何帮助都会得到满足!谢谢=)

1 个答案:

答案 0 :(得分:0)

你需要逃离你的空间。 Apache对于如何解析其指令并不是很聪明,所以当它看到一个空格时,即使它在正则表达式中,它也会将它用作参数之间的分隔符。

尝试:

RewriteRule ^used-trucks/equipment/all/([^\ ]*)-([^\ \.]*)/(.*)? /inventory/?cat=equipment&make=$1\%20$2 [R=301,L]