使用apache重写规则发送查询字符串数据

时间:2014-12-09 01:47:19

标签: php apache .htaccess mod-rewrite

这是我目前的重写:

<IfModule mod_rewrite.c>

    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule api/rest/v1.0/(.*)$ api/rest/v1.0/index.php?request=$1 [QSA,NC,L]

</IfModule>

但如果我发送此信息:http://localhost/api/rest/v1.0/users/list?user_id=123abc&api_key=12作为测试,我会收到以下QUERY_STRING $ _SERVER参数:

"QUERY_STRING": "request=users\/list&user_id=123abc",

我对RewriteRules很新,虽然我对正在发生的事情有了基本的了解,但我无法理解为什么我能够看到user_id而不是api_key(或user_id之后的任何额外参数)

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

如果您使用curl / wget / netcat,则需要阻止shell看到“&amp;”。最安全的是双重引用您的网址。