【问题标题】:Nginx returns 401 for subdirectory index.htmlNginx 为子目录 index.html 返回 401
【发布时间】:2020-02-11 13:48:57
【问题描述】:

我有一个网站,每次尝试访问“myDomain.com/privacy-policy”等子文件夹中的页面时,nginx 都会返回“需要 401 授权”。 该网站的文件夹结构如下:

-myDomain.com/
  -index.html
  -images/
    -(images..)
  -legal-disclosure/
    -index.html
    -css/
      -(css files..)
  -privacy-policy/
    -index.html
    -css/
      -(css files..)
  -template/
    -templates.min.css

对应的nginx配置:

server {
    listen 80;
    server_name myDomain.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name myDomain.com;

    ssl_certificate /root/ssl-certs/myDomain.com_ssl_certificate.cer;
    ssl_certificate_key /root/ssl-certs/_.myDomain.com_private_key.key;

    location / {
      root /var/www/html/myDomain.com;
      index index.html;
    }

    location /privacy-policy {
      root /var/www/html/myDomain.com/privacy-policy;
      index index.html;
     }

    location /legal-disclosure {
      root /var/www/html/myDomain.com/legal-disclosure;
      index index.html;
     }
}

有人知道为什么吗?

【问题讨论】:

  • 是整个 nginx 配置,没有其他加载的配置文件吗? nginx进程用户是什么,对文件和文件夹有什么文件访问权限?
  • nginx 用户是 'www-data',访问权限如下:drwxrwx--- 3 www-data www-data 4096 Jan 19 03:43 images -rw-rw---- 1 www-data www-data 10433 Jan 19 03:43 index.html drwxrwx--- 3 www-data www-data 4096 Jan 19 03:43 legal-disclosure drwxrwx--- 3 www-data www-data 4096 Jan 19 03:43 privacy-policy drwxrwx--- 2 www-data www-data 4096 Jan 19 03:43 template。还有两个额外的配置文件,其中另一个服务器块具有不同的 server_names。

标签: html nginx web static subdirectory


【解决方案1】:

我解决了我的问题!我忽略了子域“www”。在我的 nginx 配置和网站内的链接都引用了“www.mydomain.com/...”。 刚刚添加了两个带有“www.myDomain.com”的服务器块并重定向它们。 现在它起作用了! :D

【讨论】:

  • 不再需要 2 个 server 块。只需添加server_name myDomain.com www.mydomain.com; 即可。
猜你喜欢
  • 2019-07-13
  • 2023-04-06
  • 2012-12-29
  • 1970-01-01
  • 2015-03-09
  • 1970-01-01
  • 1970-01-01
  • 2017-02-06
  • 2015-11-21
相关资源
最近更新 更多