为什么我需要将nginx中的$ args重定向到index.php?

时间:2016-09-28 19:25:44

标签: php redirect nginx

许多PHP框架建议将此添加到nginx:

location / {
    try_files $uri /index.php$is_args$args;
}

对所有HTTP请求执行index.php

为什么我需要$is_args$args我认为$args已经在HTTP GET请求中了。那么为什么nginx需要将它们传递给index.php?

1 个答案:

答案 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并且一切正常。

但另一个应用程序可能表现不同。