【发布时间】:2009-10-06 21:16:39
【问题描述】:
我正在尝试从以下位置重写 url:
http://domain.com/aa/whatever/whatever.php
致
http://domain.com/whatever/whatever.php?language=aa
但是,根据现有的 $_GET 变量,它必须是 ?language 或 &language。
为此,我使用了 2 个带有 [L] 标志的正则表达式:
RewriteRule ^([a-z]{2})/(.*\.php\?.*) /$2&language=$1 [L]
RewriteRule ^([a-z]{2})/(.*) /$2?language=$1 [L]
第二个按预期工作......但是第一个从未被命中(它落入第二个正则表达式,它确实命中),即使 Regex Coach 确实告诉我它应该。
编辑:
如果只是读到我需要使用两个反斜杠来转义问号。如果我这样做,它会命中第一个正则表达式,但永远找不到其他 GET 变量。
【问题讨论】:
标签: regex .htaccess mod-rewrite