我们在配置中有这个规则:
RewriteRule (\w+)\/place_info\/(\d+)(\/.+|\/?)$ $1/place_info.php?id=$2 [QSA]
用于获取表单的 URL
http://www.ourdomain.com/section/place_info/12345/place-name-whatever
并在内部将其传递为
http://www.ourdomain.com/section/place_info.php?id=12345
这在所有情况下都可以正常工作,除非其中place-name-whatever
包含 URL 编码/
字符。例如,这有效:
http://www.ourdomain.com/section/place_info/12345/place-name-whatever
这有效:
http://www.ourdomain.com/section/place_info/12345/place-name-whatever/with-slash
但这不是:
http://www.ourdomain.com/section/place_info/12345/place-name-whatever%2Fwith-slash
对于我来说,我无法弄清楚这里发生了什么,更重要的是,如何解决它。任何帮助表示赞赏。