Apache .htaccess无法正常工作

我可以访问安装了apache的Ubuntu机器,我连接到使用PuTTy。

出于某种原因,我的.htaccess文件不能正常工作,这是它包含的所有内容:

ErrorDocument 404 /handler.php 

而不是去到handler.php页面,它打印出一般Not Found apache页面。

我search了谷歌,所有我能find的信息说,确保在你的ApacheconfigurationAccessFileName设置为.htaccess和AllowOverride设置为全部。

我改变了我的configuration文件(/etc/apache2/apache2.conf),它现在包含这个:

 AccessFileName .htaccess <Directory /> AllowOverride All #AllowOverride None </Directory> 

我重新启动apache( sudo /etc/init.d/apache2 restart ),但我仍然得到完全相同的问题。

对不起,我对Linux和Apache Config不熟悉。

grep -R AllowOverride /etc/apache2 :尝试查看是否有任何活动configuration文件(在conf.d或启用网站的情况下)没有对webroot的父目录设置一些限制(对/可以,但如果有人可以限制在/ var / www / mysite)。 你可以通过在里面设置拒绝来检查.htaccess是否被读取(你应该拒绝访问)

Apache无法find你的handler.php文件。

这个文件应该驻留在VirtualHost(网站)的DocumentRoot文件夹中。

肯定是的,它和.htaccess文件在同一个目录下

这可能是你的问题。 该指令中的path始终相对于DocumentRoot文件夹,而不是.htaccess文件的位置。

检查urlhttp://www.example.com/handler.php,因为这是你告诉Apacheredirect到的URL。

http://httpd.apache.org/docs/2.2/mod/core.html#errordocument