我想在我的虚拟主机上使用一个共享的 404 页面。以下是我的设置。
两个站点,每个站点在 /sites-available/ 和 /sites-enabled/ 中都有自己的配置文件
- www.foo.com
- 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;
}