我的网站运行良好;Google Cloud Platform VM 运行 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 ...
行,试图恢复默认行为。
更新:找到错误的线路了,谢谢!
答案1
您看到的响应与ErrorDocument
如下定义的 404 一致:
ErrorDocument 404 "404.html"
通过将第二个参数括在引号中,您可以将“错误文档”定义为一个简单的字符串。服务器仍然以 404 HTTP 状态代码响应。
而它应该是这样的:
ErrorDocument 404 /404.html
我删除了所有我能找到的
.htaccess
文件和每行ErrorDocument ...
如果您有权访问服务器配置,那么服务器配置将是执行此操作的更常见位置。在这种情况下,您需要重新启动服务器才能使任何更改生效。
或者,响应被缓存在服务器端/代理?
更新:如果您找不到设置的位置,那么(作为一种解决方法)您应该能够ErrorDocument
正确地重新定义,.htaccess
并且这将覆盖父.htaccess
文件或服务器配置中的任何设置。(这提供- 或更大 - 在服务器配置中设置,首先AllowOverride FileInfo
允许设置。)ErrorDocument
.htaccess