如何在url htaccess中允许/读取百分号

时间:2015-03-07 09:50:44

标签: php regex .htaccess url url-rewriting

我正在使用htaccess规则进行网址重写

RewriteCond %{THE_REQUEST} /buy-car\.php\?make=([^\s&]+)&model=([^\s&]+)&year=([^\s&]+)\s [NC]
RewriteRule ^ buy-car/%1/%2/%3? [R=302,L]

RewriteRule ^buy-car/([\w-]+)/([\w-]+)/([\w-]+)/?$ buy-car.php?make=$1&model=$2&year=$3 [L,QSA,NC]

这会使网址像

 www.example.com/buy-car/audi/x5/2015

但有时我可能有这样的网址

www.example.com/buy-car/audi/x5/2000%3B2015

%3B represents ;  

现在如何改变我的htaccess规则才能正常工作。

谢谢

2 个答案:

答案 0 :(得分:0)

在%前面添加反斜杠。尝试在正则表达式中使用:([\%\ w - ] +)。

答案 1 :(得分:0)

在您的角色类中允许;。有第二条规则:

RewriteRule ^buy-car/([\w;-]+)/([\w;-]+)/([\w;-]+)/?$ buy-car.php?make=$1&model=$2&year=$3 [L,QSA,NC]