PHP - $_SERVER['QUERY_STRING'] 空

use*_*847 1 php .htaccess

当我请求 host.com/?123 时,我的服务器上有一个索引页

 echo $_SERVER['QUERY_STRING']; // returns 123 as expected 
Run Code Online (Sandbox Code Playgroud)

但如果我执行一个没有“?”的请求 字符:host.com/123 QUERY_STRING 在这种情况下始终保持为空。

但我不确定如何配置 .htaccess 才能读取查询,

我怎样才能让它读取完整的请求 URL?谢谢!

Jon*_*Lin 5

尝试将其添加到文档根目录的 htaccess 文件中:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /?$1 [L,QSA]
Run Code Online (Sandbox Code Playgroud)

这使得当您请求时/abcd1234,您的脚本应该将“abcd1234”视为查询字符串。

此单个规则有 2 个条件,!-f一个检查请求是否不是针对现有文件,以及!-d检查请求是否不是针对现有目录。如果两者都满足,则该请求将被简单地重写为查询字符串。