【发布时间】:2012-01-18 00:43:23
【问题描述】:
我在使用 get 参数和 htaccess 重写规则时遇到了问题。 下面是 urlencode() 的链接;我用来重定向到 index.php 的重写规则,最后是 index.php 上的 print_r($_GET)。 如您所见,转义符不是静态变量值的一部分,而是与我的预期相反,它被解释为变量分隔符。 为什么?
初始链接:
<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] => )
【问题讨论】:
-
$_SERVER["QUERY_STRING"]是如何查找该请求的?当您手动调用index.php?static=...时不会发生重写吗? -
手动浏览到 "index.php?static=Game-Tech-%26-Arts-Lab" 显示页面很好 - $_SERVER["QUERY_STRING"] 读取 "[QUERY_STRING] => static=Game-Tech-&-Arts-Lab"
标签: php .htaccess mod-rewrite escaping rewrite