根目录外的Nginx错误页

根目录外的Nginx错误页,nginx,Nginx,是否可以将nginx配置设置为如下工作方式: 我的网站根目录将位于路径ie:/var/www/html中 是否可以将例如401、404等错误页面放置在其他路径(如ie:/some/other/path)中 通过使用以下ie,我成功地实现了这一点(在网站根目录外加载错误页面): error_page 404 /custom_404.html; location = /custom_404.html { root /path/to/my/root/for/error/pages inte

是否可以将nginx配置设置为如下工作方式:

我的网站根目录将位于路径ie:/var/www/html中

是否可以将例如401、404等错误页面放置在其他路径(如ie:/some/other/path)中

通过使用以下ie,我成功地实现了这一点(在网站根目录外加载错误页面):

error_page 404 /custom_404.html;
location = /custom_404.html {
   root /path/to/my/root/for/error/pages
   internal;
}
现在这是个问题。。。我的404页面可能包含一些图像和css文件,当它显示我的404页面时,根本不会加载css和图像(如果我将错误页面的css和图像放在/var/www/html中,它就可以工作)

我想保持css和错误页面的图像在同一个文件夹中的错误页面是。。。有人能告诉我应该如何配置它吗?有可能吗?或者告诉我什么地方,因为我已经搜索了好几天了


非常感谢。

假设您的自定义_404.html如下所示:

<html>
<head><title>Oops!</title></head>
<body>
  <h1>404</h1>
  <img src="oops.gif" />
</body>
</html>
location / {
    root /normal/path/to/html;
    try_files $uri @fallback;
}

location @fallback {
    root /path/to/error/files;
}

假设您的自定义_404.html如下所示:

<html>
<head><title>Oops!</title></head>
<body>
  <h1>404</h1>
  <img src="oops.gif" />
</body>
</html>
location / {
    root /normal/path/to/html;
    try_files $uri @fallback;
}

location @fallback {
    root /path/to/error/files;
}

您可以有如下备用位置:

<html>
<head><title>Oops!</title></head>
<body>
  <h1>404</h1>
  <img src="oops.gif" />
</body>
</html>
location / {
    root /normal/path/to/html;
    try_files $uri @fallback;
}

location @fallback {
    root /path/to/error/files;
}

您可以有如下备用位置:

<html>
<head><title>Oops!</title></head>
<body>
  <h1>404</h1>
  <img src="oops.gif" />
</body>
</html>
location / {
    root /normal/path/to/html;
    try_files $uri @fallback;
}

location @fallback {
    root /path/to/error/files;
}

您的问题是
internal
规则,该规则限制只能从内部请求访问位置。为了保持
内部
Nginx规则,您可以执行以下操作:

  • 使用
    内联CSS
  • 将图像转换为
    Base64
完成此操作后,您可以将生成的Base64字符串嵌入
背景图像
CSS规则,如下所示:

背景图像:url(数据:image/png;base64,iVBORw0KGgoAAAANSUhEADI….=)
您可以使用带有
属性的字符串,如下所示:



否则,如果您仍要使用外部内容,则必须从位置中删除专用于Nginx配置中的错误页面的
内部
规则。

您的问题是
内部
规则,该规则限制只能从内部请求访问位置。为了保持
内部
Nginx规则,您可以执行以下操作:

  • 使用
    内联CSS
  • 将图像转换为
    Base64
完成此操作后,您可以将生成的Base64字符串嵌入
背景图像
CSS规则,如下所示:

背景图像:url(数据:image/png;base64,iVBORw0KGgoAAAANSUhEADI….=)
您可以使用带有
属性的字符串,如下所示:


否则,如果仍要使用外部内容,则必须从位置中删除用于Nginx配置中的错误页面的
内部
规则