Apache .htaccess 不工作
我可以訪問安裝了 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