Apache-2.2

Apache .htaccess 不工作

  • May 27, 2011

我可以訪問安裝了 apache 的 Ubuntu 機器,我使用 PuTTy 連接到該機器。

由於某種原因,我的 .htaccess 文件無法正常工作,這就是它所包含的全部內容:

ErrorDocument 404 /handler.php

它沒有轉到 handler.php 頁面,而是列印出一般的 Not Found apache 頁面。

我搜尋了Google,我只能找到資訊說確保在你的 apache 配置中 AccessFileName 設置為 .htaccess 並且 AllowOverride 設置為 All。

我對我的配置文件(/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:嘗試查看是否有任何活動的配置文件(在 conf.d 或啟用站點)沒有對您的 webroot 的父目錄施加一些限制(對於 / 沒關係,但如果有人可以對 /var/www/ 施加限制我的網站)。您可以通過從所有內部設置拒絕來檢查 .htaccess 是否已讀取(您應該拒絕訪問)

Apache 無法找到您的 handler.php 文件。

此文件應位於 VirtualHost(網站)的 DocumentRoot 文件夾本身中。

肯定是的,它與 .htaccess 文件位於同一目錄中

這可能是你的問題。該指令中的路徑始終相對於 DocumentRoot 文件夾,而不是相對於 .htaccess 文件的位置。

檢查 URL http://www.example.com/handler.php,因為這是您告訴 Apache 重定向到的 URL。

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

引用自:https://serverfault.com/questions/272916