我正在使用 Apache 2.2.X 和 PHP 5.2.X(作为 Apache 模块安装)来构建一个新网站,我想阅读您关于我如何尝试处理服务器错误的建议。
我正在考虑使用我主页的同一文件 (/index.php) 来显示自定义错误消息。这是我的 .htaccess 设置:
ErrorDocument 400 /index.php?error=400
ErrorDocument 401 /index.php?error=401
ErrorDocument 403 /index.php?error=403
ErrorDocument 404 /index.php?error=404
ErrorDocument 500 /index.php?error=500
现在,在我的 index.php 文件中,我有一些如下所示的代码:
if (isset($_GET['error']))
DrawErrorPage($_GET['error']);
else
DrawHomepage();
一切都像魅力一样。
好吧,除了我无法修复的一件事之外的所有内容:如果我强制 Apache 以 500 状态代码响应(例如,将格式错误的代码插入到我的 .htaccess 中),我不会被重定向到“/index.php? error=500",但我得到的是默认的 500 错误页面。使用任何其他状态代码(例如 403 或 404),我的配置绝对可以完美运行。
但现在我有一个疑问,我开始认为使用另一个页面来处理错误会更好(例如,“/error.php”)。
“DrawHomepage()”需要将“robots”元标记设置为“index,follow”,而“DrawErrorPage()”需要将它设置为“noindex,nofollow”。对?那么......如果网络爬虫第一次访问我的主页时收到错误响应会发生什么?如果网络爬虫第一次访问我的主页有 200 次访问,但一个月后访问了 500 次,会发生什么情况?如果我将“机器人”元标记保留为“索引,关注”,即使我显示错误,会发生什么?
这个问题有解决方法吗?你会怎么办?
非常感谢!