这是我当前的重写:
<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 双引号。