【问题标题】:Why do I need to redirect $args in nginx to index.php?为什么我需要将 nginx 中的 $args 重定向到 index.php?
【发布时间】:2017-02-06 22:30:02
【问题描述】:

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

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

对所有 HTTP 请求执行 index.php

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

【问题讨论】:

    标签: php redirect nginx


    【解决方案1】:

    这取决于谁写了index.php。从nginx向PHP发送大量参数,通常QUERY_STRING和REQUEST_URI在其中。

    如果程序员访问$_SERVER["QUERY_STRING"],他们将收到try_files 语句中/index.php 末尾附加的任何内容。

    如果程序员访问$_SERVER["REQUEST_URI"],他们将收到原始URI 和原始查询字符串,并且try_files 语句中添加到/index.php 末尾的任何内容都不会影响。

    我托管的两个应用程序(WordPress 和 MediaWiki)显然使用后者,因为我没有将 $is_args$args 附加到 /index.php 并且一切正常。

    但另一个应用程序的行为可能不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-03
      • 1970-01-01
      • 2022-01-22
      • 2015-12-19
      • 2016-11-15
      • 2015-08-10
      • 2017-04-17
      • 2020-03-16
      相关资源
      最近更新 更多