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