Nginx:如何重写错误页面的路径?

Nginx:如何重写错误页面的路径?

我有一个/api包含 HTTP 授权的位置。我希望在授权失败时显示 401 页面。

这是我的文件结构(如果它很重要,我在 Windows 上运行 nginx)

nginx
|─html
  |
  | 401.html
  |
  |─40x_files
    |
    | script.js
    | styles.css

这是我的配置

server {
    listen 80;
    server_name  example.com;
 
    error_page 401 /401.html;
    location = /401.html {
        auth_basic off;
        root html;
    }

    location /api {
        auth_basic "Restricted area";
        auth_basic_user_file ../conf/conf.d/htpasswd;
        proxy_pass   http://127.0.0.1:8080/api;
    }
}

我有两个问题

  1. 如果我只是example.com/401.html在浏览器中输入,我会收到一个错误,提示无法访问40x_files文件夹中的文件(此处是401.html页面文件)

  2. 如果我的授权失败,那么由于某种原因我会被重定向到此路径api/40x_files/script.js,我该如何将其恢复到正确状态?

我想我需要做某种事情rewrite,但我真的不明白如何正确安排

相关内容