【发布时间】:2014-05-26 17:14:57
【问题描述】:
我有一个正则表达式,在测试 at regexp101.com 时似乎可以正常工作 但这并没有在 mod_rewrite 中给我相同的结果。
所以,我要重写的 URL 是:
/modeles-voiture/Nissan/Qashqai+2
预期结果是:
/modeles.php?brand=Nissan&model=Qashqai+2
重写规则:
RewriteCond %{REQUEST_URI} ^/?modeles-voiture [NC]
RewriteRule \/([A-Z][\-A-Za-z]+)\/([\+\-A-Za-z0-9]+$) /modeles.php?brand=$1&model=$2 [L]
我从重写规则中得到的是:
/modeles-voiture/Nissan/Qashqai 2
注意缺少的 + 号,它会在 modeles.php 中抛出我的脚本
感谢您的帮助。
【问题讨论】:
-
首先找出 + 号消失的位置。如果你去 /modeles.php?brand=Nissan&model=Qashqai+2 将
$_GET['model']包含+字符吗? -
@turboHz,感谢您的回复。它也可能与此有关。我只是尝试用 %2b 替换 + 号,使我的 URL /modeles-voiture/Nissan/Qashqai%2b2 但它给了我这个:modeles-voiture/Nissan/Qashqai%2b2。所以,机制不是那样的。
标签: php regex apache .htaccess mod-rewrite