Мой сайт отлично работает; Виртуальная машина 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"
Заключив второй аргумент в кавычки, вы определите «документ с ошибкой» как простую строку. Сервер по-прежнему отвечает с кодом состояния 404 HTTP.
Тогда как должно быть примерно так:
ErrorDocument 404 /404.html
Я удалил все
.htaccess
файл и каждыйErrorDocument ...
линия, которую я могу найти
Если у вас есть доступ к конфигурации сервера, то конфигурация сервера будет более обычным местом для этого. В этом случае вам потребуется перезапустить сервер, чтобы изменения вступили в силу.
Или ответ кешируется на стороне сервера / прокси?
ОБНОВИТЬ: Если вы не можете найти, где это устанавливается, то (в качестве обходного пути) вы сможете переопределить ErrorDocument
правильно в .htaccess
и это должно переопределить любой параметр в родительском .htaccess
файлы или конфигурацию сервера. (Это обеспечивает AllowOverride FileInfo
- или выше - устанавливается в конфигурации сервера, разрешая настройку ErrorDocument
в .htaccess
в первую очередь.)