【问题标题】:Nginx set root to subfolderNginx 将根目录设置为子文件夹
【发布时间】:2020-05-05 17:49:12
【问题描述】:

使用 Nginx,我需要下载文件夹成为我网站的主页,同时仍然允许 terms.html 页面出现在根目录中。下载文件夹显示带有 fancyindex 和 fancyindex_header 指令的文件列表。

我这样做了:root /var/www/html/download;,但我无法再访问下载文件夹之外的页面,例如terms.html

nginx 允许这种配置吗?这是我的目录结构:

www/
    /download/  # fancyindex on + home page
    /account/
            /index.php
            /login.php
            /signup.php
    /css/
    /js/
    robots.txt
    terms.html

【问题讨论】:

    标签: nginx nginx-location


    【解决方案1】:

    如果您的目录结构遵循您的 URI 结构,您可能应该在server 级别将root 设置为/var/www/html,并仅将/var/www/html/download 用于一个location

    例如:

    server {
        ...
        root /var/www/html;
    
        location / {
            root /var/www/html/download;
            fancyindex on;
        }
        location /account/ {
            ... # PHP stuff
        }
        location /css/ { }
        location /js/ { }
        location = /robots.txt { }
        location = /terms.html { }
    

    最后四个块可以为空,因为它们从周围的块继承 root 的值。详情请见this document

    【讨论】:

    • 谢谢你,理查德,我理解你的解决方案。我将重新阅读 Nginx 文档。 ?
    猜你喜欢
    • 2021-11-24
    • 2016-06-28
    • 1970-01-01
    • 2011-05-01
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    相关资源
    最近更新 更多