Мой сайт отлично работает; Виртуальная машина Google Cloud Platform под управлением Ubuntu и Apache2. Ну, кроме одного; Не могу заставить работать 404 страницы. Я следовал нескольким руководствам и сумел сделать что-то действительно глупое.
Это результат 404:
Это настоящий документ 404 (содержимое /404.html
):
<!doctype html>
<head>
<title>404</title>
</head>
<body>
<h1>404 :(</h1>
This page doesn't exist. Sorry!
<br><br>
You can <button onclick="history.back();">Go back</button>,
jump to the <a href="/">Site root</a>, or the <a href="/kcp">KCP root</a>.
</body>
Я удалил все файлы .htaccess
и все ErrorDocument .. .
строка, которую я могу найти, пытаясь восстановить поведение по умолчанию.
ОБНОВЛЕНИЕ: Обнаружена ошибочная строка, спасибо!
Ответ, который вы видите, соответствует определению 404 ErrorDocument
следующим образом:
ErrorDocument 404 "404.html"
Заключая второй аргумент в кавычки, вы определяете «документ с ошибкой» как простая строка. Сервер по-прежнему отвечает кодом состояния HTTP 404.
Хотя это должно быть примерно так:
ErrorDocument 404 /404.html
Я удалил все
.htaccess
файл и всеErrorDocument ...
строка, которую я могу найти
Если у вас есть доступ к конфигурации сервера, то конфигурация сервера будет более обычным местом для этого. В этом случае вам потребуется перезагрузить сервер, чтобы изменения вступили в силу.
Или ответ кэшируется на стороне сервера / прокси?
ОБНОВЛЕНИЕ: Если вы не можете найти, где это установлен, то (в качестве обходного пути) вы сможете правильно переопределить ErrorDocument
в .htaccess
, и это должно переопределить любые настройки в родительских файлах .htaccess
или конфиг сервера. (Это при условии, что AllowOverride FileInfo
- или больше - установлено в конфигурации сервера, разрешая настройку ErrorDocument
в .htaccess
в первую очередь.)