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

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

两个站点,每个都有自己的configuration文件在/ 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中的两个configuration文件都是相同的:

 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 (没有以下位置块)。

我也双重检查,以确保我的权限设置为775所有文件夹和www中的文件。

当我尝试访问一个不存在的页面时,Nginx会提供我试图访问的虚拟主机的index.php文件。

任何人都可以指出我做错了什么? 谢谢!

这个怎么样?

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