gpt4 book ai didi

php - 如何在 nginx 中使用 _GET 参数获得正确的 try_files $uri 指令

转载 作者:行者123 更新时间:2023-12-05 07:59:25 24 4
gpt4 key购买 nike

我刚刚将一个站点从 apache 迁移到 nginx,到目前为止我非常高兴。但是,服务器似乎无法识别 $_GET 参数。

我读到答案是将 try_files 指令更改为:

location / {
try_files $uri $uri/ /index.php?$query_string;
}

但这对我不起作用。我怀疑这是因为我正在使用的查询字符串是其中的几个目录,其 url 类似于:

http://www.mysite.com/thedirectory/thefile?sortby=director

我无法调整 try_files 指令以在该实例中工作,而且文档似乎稀疏或过时。

有什么想法吗?如果我不能解决这个问题,我将不得不回到 Apache。

最佳答案

我不知道你从哪里得到的答案,但在你的问题的背景下,我看不出相关性。让我们首先澄清一些事情:

  1. Try_files 将 URI 与磁盘上的物理位置相匹配,并允许您控制回退操作。
  2. 默认回退是抛出 404。
  3. $query_string 与匹配过程无关。它用于 try_files 结构,其中必须将某些内容添加到查询字符串中。

您的问题可能存在三种原因和补救措施:

  1. uri 匹配真实文件,但没有文件扩展名,这导致 php 处理位置未被触发。在这种情况下,您的声明应该是:

    try_files $uri $uri/$uri.php;

  2. 这是一个虚拟位置,路由器在 index.php 中,就像它在许多应用程序中一样,例如 WordPress 和 Magento。在这种情况下,try_files 应该是:

    try_files $uri $uri/@appname;

如果没有更多上下文,则无法为@appname 提供位置 block 。

  1. 您没有包含相关的 fastcgi_param 指令。在这种情况下,您的 try_files 是噪音。首先解决实际问题,方法是包括所提供的示例 fastcgi_param,如评论中所述。

关于php - 如何在 nginx 中使用 _GET 参数获得正确的 try_files $uri 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21839149/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com