首页 >后端开发 >php教程 >如何配置 Nginx 来为来自不同 URI 的嵌套子文件夹提供服务?

如何配置 Nginx 来为来自不同 URI 的嵌套子文件夹提供服务?

Barbara Streisand
Barbara Streisand原创
2024-11-29 02:28:13219浏览

How Can I Configure Nginx to Serve Nested Subfolders from Different URIs?

嵌套子文件夹的 Nginx 位置配置

在 Nginx 配置的上下文中,访问具有特定 URI 的子文件夹可能具有挑战性。这就是位置指令发挥作用的地方。

考虑以下场景:您有一个类似 /var/www/mysite/ 的目录结构,其中包含两个子文件夹:/static 和 /manage。您希望通过根 URI(例如“http://example.org/”)访问 /static 并通过“/manage”访问 /manage(例如“http://example.org/manage”)。

让我们分解提供的 Nginx 配置:

server {
  listen 80;
  server_name example.org;
  ...

  # Static folder location
  location / {
    root $uri/static/;
    index index.html;
  }

  # Manage folder location (attempt 1)
  location /manage {
    root $uri/manage/public;
    try_files $uri /index.php$is_args$args;
  }

  # PHP processing location
  location ~ \.php {
    ...
  }
}

虽然 / 位置工作正常,但 /manage 位置失败。这是因为 root 指令不正确。要在别名中使用子文件夹,应使用别名而不是 root。

/manage 的更新位置应如下所示:

location ^~ /manage {
  alias /var/www/mysite/manage/public;
  ...
}

通过这些修改,Nginx 将正确服务根 URI 处来自 /static 的静态文件和“/manage”处来自 /manage 的动态内容。

以上是如何配置 Nginx 来为来自不同 URI 的嵌套子文件夹提供服务?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn