2011-09-15 39 views
2

我在我的網站上有一個自定義404錯誤頁面,但在網站上做其他事情時,錯誤頁面很難找出我缺少的文件問題是什麼因爲它重定向到給定的html或php文件,並將地址欄中丟失文件的URL替換爲自定義錯誤頁面的URL。404自定義錯誤頁面重定向不顯示丟失的文件的URL

因此,例如,當用戶登錄到網站時,我已經鏈接到一個php文件,當他們點擊提交時,但然後瀏覽器直接到404錯誤頁面,所以我看不到問題實際上是一個高於應該的目錄的鏈接。

我已經嘗試使用php打印丟失文件的URL到頁面,但服務器只抓取404錯誤頁面的URL,而不是原始丟失的文件URL。以下是我如何嘗試這麼做的:http://members.cox.net/midian/tutorials/php404.htm

如何顯示自定義錯誤頁面,同時在地址欄中保留原始缺少的URL,或者將丟失文件的URL打印到頁面?

回答

5

如果您的錯誤頁面是重定向到PHP供電的404頁,然後變量$_SERVER["HTTP_REFERER"]應該包含一些有趣的東西。話雖如此,重定向到錯誤404頁面是一種不好的做法。它混淆了搜索引擎和人類遊客。

編輯

這裏是一個基於Apache有效的解決方案。該行添加到您的.htaccess文件:

ErrorDocument 404 /error-404.php 

創建一個在您的網站的根目錄包含以下內容稱爲error-404.php文件:

<?php 
echo "<h1>404 Not Found</h1>"; 
echo "<p>The page {$_SERVER['REQUEST_URI']} was not found on this server</p>"; 

screenshot of the error page with firebug

+0

我不想重定向,它只是我能在網上找到的唯一東西。有誰知道如何顯示自定義錯誤頁面而不重定向? (這是我原來的問題,如果我在我的文章中不清楚)。 我試着回顯$ _SERVER [「HTTP_REFERER」],但沒有打印,所以我必須做錯了。 –

+0

如果它是一個Apache服務器,你可以通過'.htaccesss'''' httpd.conf'文件定義一個自定義的404頁面。您的託管公司可能還會提供一個界面,用於配置404錯誤的自定義頁面。讓我知道這是否可能。 –

+0

這是我在發佈問題之前嘗試的。我在我的.htaccess中定義了自定義錯誤頁面。它的一部分工作:它會重定向並打印出頁面,但問題是每次都會打印出來:「頁面/ 404。在此服務器上找不到php「 –

2

什麼薩爾曼貼出的作品我。

當我在.htaccess文件中使用相對路徑它只是工作,但:

ErrorDocument 404 /error-404.php 

ErrorDocument 404 http://www.mydomain.com/error-404.php

第二個版本是給我的地址欄中重定向的URL和在頁面主體中。

另外,你不需要爲你的404消息使用一個php頁面;如果您不想在頁面正文中回顯URL,也可以使用html頁面。

相關問題