2

我在为自定义错误页面编辑 .htaccess 文件时遇到问题。

在实时服务器上,这工作正常。

ErrorDocument 400 /error.php?e=400
ErrorDocument 401 /error.php?e=401
ErrorDocument 403 /error.php?e=403
ErrorDocument 404 /error.php?e=404
ErrorDocument 500 /error.php?e=500

但是在我的本地主机(WAMP)上,我的站点位于 www 目录下名为 sms 的文件夹中。所以我必须修改代码

ErrorDocument 400 /sms/error.php?e=400
ErrorDocument 401 /sms/error.php?e=401
....and so on for all files

有没有一种简单的方法来处理这种情况,这样我就不必每次都编辑这些行...谢谢..

4

1 回答 1

0

当天可能有点晚,但我遇到了类似的问题并解决了它。

罪魁祸首是DocumentRoot设置(在 Apache 配置中)。它必须指向您的站点驻留在本地和远程计算机上的文件夹。显然在你的情况下它不是。

如果(例如)您的站点位于本地和远程计算机上的sms目录中,并且在这两种情况下,目录本身都位于默认文档根目录中,您可能会收到此类错误。导致错误的原因是,在配置虚拟主机时,默认根目录通常会在服务器上被覆盖。

它可能看起来像这样:

<VirtualHost *:80>
  ServerName yourdomain.com
  DocumentRoot /var/www/html/sms
</VirtualHost>

在这种情况下,默认文档根目录已从默认/var/www/html更改为/var/www/html/sms,而在您的本地计算机DocumentRoot上仍设置为默认值(无论它在 WAMP 中是什么)。

作为一种解决方案,您可以在本地计算机上创建一个具有自定义文档根目录(指向sms目录)的虚拟主机。这可以通过编辑httpd-vhosts.conf文件来完成(在这种情况下,您还应该编辑您机器上的hosts文件)。但是,如果您只有一个站点,则更改httpd.confDocumentRoot中的默认设置使其指向sms目录会更简单。

于 2015-07-31T20:22:58.163 回答