Я хотел бы иметь общую страницу 404 для использования на моих виртуальных хостах. Следующее - моя установка.
Два сайта, каждый со своим собственным файлом конфигурации в / sites-available / и / sites-enabled /
Каталог 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
(без следующего блока местоположения).
Я также дважды проверил, установлены ли у меня права доступа 775 для всех папок и файлов на www.
Когда я пытаюсь получить доступ к несуществующей странице, Nginx обслуживает соответствующий index.php виртуального хоста, к которому я пытаюсь получить доступ.
Кто-нибудь может указать, что я делаю не так? Спасибо!
Как насчет этого?
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
location = /404.html {
root /var/www/shared;
}