使用阿帕奇重写规则发送查询字符串数据


Sending query string data with apache rewrite rule

这是我当前的重写:

<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后的任何额外参数)

感谢您的任何帮助

如果你使用 curl/wget/netcat,你需要防止你的 shell 看到"&"。最安全的是将您的 URL 双引号。