.htaccess错误文档的困扰

我目前在我的.htaccess文件中定义了一个ErrorDocument指令:

ErrorDocument 404 /site/error.php 

现在,如果我去我的网站上这样一个不存在的页面,它工作正常:

 http://mysite.com/p 

但是,如果我尝试去一个不存在的目录,该指令不起作用

 http://mysite.com/random/hello 

试图find该文件:

 http://mysite.com/random/site/error.php 

这当然不存在。 我在网上search和所有来源表明上面的第二个例子应该去正确的文件(因为领导/在指令使它相对于Web根),但是这显然不是这种情况。

我在Ubuntu上运行,谢谢!

.htaccess文件是相对于请求的目录进行评估的。 您的主configuration中的<Directory >块内的指令也是如此。

最简单的解决scheme是将ErrorDocument指令移动到主Apacheconfiguration中,而不是.htaccess文件中。

尝试禁用所有模块。 试试apache2ctl configtest 。 发布您的apache2.conf。