2010-08-03 47 views
21

我正在嘗試爲我的網站創建一個自定義404錯誤。我正在Windows上使用XAMPP進行測試。Apache自定義404錯誤問題

我的目錄結構如下:

error\404page.html 
index.php 
.htaccess 

我的.htaccess文件的內容是:

ErrorDocument 404 error\404page.html 

這將產生以下結果:

alt text http://i38.tinypic.com/24qk0fk.jpg

然而這不起作用 - 是否與w有關是否斜槓是或我應該如何引用錯誤文檔?

網站站點文檔駐留在Web根目錄的子文件夾中,如果這對我應該引用的內容有什麼影響?

謝謝您的高級。

當我更改該文件是

ErrorDocument 404 /error/404page.html 

我收到以下錯誤消息,這是不是有什麼是我所鏈接的HTML文件中 - 但什麼是上面列出的是不同的:

alt text http://i32.tinypic.com/kci5b7.jpg

+2

您是否嘗試將斜槓更改爲正斜槓?不確定Apache是​​否支持反斜槓。 – 2010-08-03 15:08:32

+0

ErrorDocument 404 /error/404page.html 是現在它是什麼,這引發了404異常 - 但是這不是我已鏈接的HTML文件中的異常。 – Malachi 2010-08-03 15:10:40

回答

53

ErrorDocument指令,提供本地URL路徑時,預計的路徑是從DocumentRoot完全合格。在你的情況,這意味着對ErrorDocument實際路徑是

ErrorDocument 404 /JinPortfolio/error/404page.html 

當你在第二次嘗試糾正它,原因你看到的頁面,而不是因爲http://localhost/error/404page.html不存在,因此對那裏的位在查找錯誤處理文檔時出現404錯誤。

+0

只需在htaccess中聲明它?我有服務器錯誤信息! – 2014-10-10 05:00:17

+0

好吧,我永遠不會得到它。 :(我總是得到錯誤! – Hydro 2016-02-19 12:57:26

11

由於性能問題,Apache在這些日期內默認禁用.htaccess文件。啓用.htaccess文件時,Web服務器必須在其所在位置的每個子目錄中檢查每個命中。

剛剛發現這很重要。如果您無論如何要打開.htaccess文件,下面是解釋它的鏈接:

http://www.tildemark.com/enable-htaccess-on-apache/

1

無論你輸入什麼url作爲默認的404頁面,都必須是根文件夾的絕對或相對位置:這就是爲什麼有些人會犯這樣的錯誤:像重寫引擎的url,它是相對於.htaccess所在的文件夾位於。

4

而不是將它們添加到您的.htaccess文件,您可以將它們添加到任何虛擬主機文件。

<VirtualHost *:80> 

    DocumentRoot /var/www/mywebsite 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 

    ErrorDocument 404 /error-pages/404.html 
    ErrorDocument 500 /error-pages/500.html 
    ErrorDocument 503 /error-pages/503.html 
    ErrorDocument 504 /error-pages/504.html 

</VirtualHost> 

error-pagesmywebsite文件夾的子文件夾,包含自定義錯誤頁。確保你重新啓動你的Apache來查看你的改變。

$sudo /etc/init.d/apache2 reload