Nginx

在 Nginx 中為虛擬主機使用共享 404 頁面

  • September 9, 2012

我想在我的虛擬主機上使用一個共享的 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 提供服務。

誰能指出我做錯了什麼?謝謝!

這個怎麼樣?

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

引用自:https://serverfault.com/questions/425724