在 Nginx 中为虚拟主机使用共享 404 页面

在 Nginx 中为虚拟主机使用共享 404 页面

我想在我的虚拟主机上使用一个共享的 404 页面。以下是我的设置。

两个站点,每个站点在 /sites-available/ 和 /sites-enabled/ 中都有自己的配置文件

  1. www.foo.com
  2. bar.foo.com

www 目录设置为:

www/
foo.com/
foo.com/index.html
bar.foo.com/
bar.foo.com/index.html
shared/
shared/404.html

/sites-available 中的两个配置文件除根和服务器名称外均相同:

root /var/www/bar.foo.com;
index index.html index.htm index.php;

server_name bar.foo.com;

location / {
    try_files $uri $uri/ /index.php;
}
error_page 404 /404.html;
location = /404.html {
    root /var/www/shared;
}

我已经尝试了上述代码,也尝试了设置error_page 404 /var/www/shared/404.html(没有以下位置块)。

我还仔细检查了以确保 www 中所有文件夹和文件的权限均设置为 775。

当我尝试访问不存在的页面时,Nginx 会提供我尝试访问的虚拟主机的相应 index.php。

有人能指出我做错了什么吗?谢谢!

答案1

这个怎么样?

location / {
    try_files $uri $uri/ =404;
}
error_page 404 /404.html;
location = /404.html {
    root /var/www/shared;
}

相关内容