2010-06-15 269 views
1

我試圖加載一個自定義錯誤文檔的404錯誤使用Linux服務器上的.htaccess文件,頁面獲取當前頁面URL然後重定向到另一個站點(這是從數據庫檢索)基於在從URL檢索到的id上。.htaccess跨瀏覽器

的當前錯誤的文件都存儲在這裏:

/上-error_docs‖/ - 我沒有權限上傳比已經在那裏

/HTTPDocs/301redir.php 是HTML文件的其他任何.htaccess文件所在的網站根目錄。

我已經使用以下方式加載301redir.php頁面作爲錯誤文檔,它在FF中工作,但沒有其他瀏覽器。使用的.htaccess正在改變這個我唯一真正的選擇

的ErrorDocument 404 /310redir.php

,有沒有辦法來解決這個問題,並使其在所有瀏覽器的工作?

+0

你確定它工作在Firefox?錯誤處理髮生在服務器端,只有輸出被髮送回客戶端。所以它可以適用於任何客戶或任何客戶。 – Gumbo 2010-06-15 12:24:20

+0

你說「沒有其他瀏覽器」,你有什麼其他瀏覽器嘗試過嗎?您是否從日誌中驗證其他瀏覽器實際上是否生成了正確的錯誤(並且沒有成功)? – ircmaxell 2010-06-15 12:59:36

回答

0

也許你的文件太小,看到從apache docs以下摘錄:

微軟的Internet Explorer(MSIE) 將默認忽略 服務器生成的錯誤消息時 他們是「太小」並用它自己的「友好」錯誤消息替代 。該 大小閾值取決於 錯誤類型的不同而不同,但一般來說,如果你 讓你的錯誤文檔大於 512字節,然後MSIE將顯示 服務器生成的錯誤,而不是 掩蓋它。有關詳細信息,請參閱Microsoft知識庫文章 文章Q294807中提供的 。

+0

不錯的建議我閱讀關於defalt服務器錯誤頁面的注意事項!虐待稍後嘗試。 – lordsharp 2010-06-15 14:50:27

+0

雖然這不能解釋爲什麼即使在Ch + Op – lordsharp 2010-06-15 14:51:03

0

這應該做工精細,嘗試把完整的URL http://www.yourdomain.com/301redir.php

我也注意到youu說310redir.php就是你們的榜樣,但301redir.php在你的描述(注意:310和301)。

另外不要忘記添加header("HTTP/1.1 404 Not Found");如果你正在做一個404

+0

THE 310/301中得到同樣的問題,這只是我在這裏輸入問題時犯的一個錯誤。我故意使用301,因爲我在類似的網站上工作bit.ly。我使用404 htaccess錯誤來加載php頁面,當用戶試圖查看一個不存在的目錄時,例如hhtp://yourdomain.com/3h5i435,(而不是默認的htmls文檔),然後執行301頭部重定向。 – lordsharp 2010-06-15 14:49:52

+0

爲什麼不使用ModRewrite? – Lizard 2010-06-15 15:01:15