我遇到了一个get参数和htaccess重写规则的问题。 以下是urlencode()'ed链接;我用来重定向到index.php的重写规则,最后是index.php上的print_r($ _ GET)。 正如您所看到的,Ulescaped&符号不是变量static的值的一部分,而是与我的期望相反,被解释为变量分隔符。的为什么吗
初始链接:
<a href="static/Game-Tech-%26-Arts-Lab">link</a>
htaccess的:
RewriteRule ^static/(.*)$ /index.php?static=$1 [L]
的index.php:
Array ( [static] => Game-Tech- [-Arts-Lab] => )
答案 0 :(得分:23)
啊,好的。有趣。似乎有一个特殊的解决方案,以保持特定的&符号逃脱。使用[B]
flag for Rewriterules。
RewriteRule ^static/(.*)$ /index.php?static=$1 [L,B]
在插入$1
占位符时,应该对urlencode特殊字符进行编码。它只适用于Apache 2.2,但我相信。
找到一些参考文献: