许多PHP框架建议将此添加到nginx:
location / {
try_files $uri /index.php$is_args$args;
}
对所有HTTP请求执行index.php
。
为什么我需要$is_args$args
?我认为$args
已经在HTTP GET请求中了。那么为什么nginx需要将它们传递给index.php?
答案 0 :(得分:1)
这取决于谁写了index.php
。大量参数从nginx
发送到PHP,通常还有QUERY_STRING和REQUEST_URI。
如果程序员访问$_SERVER["QUERY_STRING"]
,他们将收到/index.php
语句中try_files
末尾附加的内容。
如果程序员访问$_SERVER["REQUEST_URI"]
,他们将收到原始URI以及原始查询字符串,并且/index.php
语句中try_files
末尾附加的任何内容都不会影响该值。
我托管的两个应用程序(WordPress和MediaWiki)显然使用后者,因为我没有将$is_args$args
附加到/index.php
并且一切正常。
但另一个应用程序可能表现不同。