2013-06-27 185 views
0

我想在我的.htaccess文件中設置一個規則,這樣任何url都可以得到,這會導致404因爲沒有這樣的文件而自動重定向到主頁的現場: 的index.php404重定向使用.htaccess

我的.htaccess文件看起來像這樣:

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^queenslandbeerweek.com.au$ [NC] 
RewriteRule ^(.*)$ http://queenslandbeerweek.com.au/$1 [L,R=301] 
ErrorDocument 404 /index.php 

這將導致index.php文件中顯示,但壞了,樹葉在地址欄中的URL eroneous。

我已閱讀另一篇文章的答案,它與將錯誤的URL作爲參數傳遞有關,導致頁面無法正確加載,因爲頁面調用數據庫中的數據,並且它傳遞了錯誤URL作爲index.php的參數,但沒有提示解決方案是什麼。

我想要發生的情況是,如果在地址欄中鍵入了錯誤的URL,或者如果遵循鏈接,則導致不存在的文件,完全忘記此文件,放棄所有內容,然後轉到到主頁index.php。

的index.php從數據庫

調用數據使用.htaccess文件這可能嗎?

我和我的另一個網站有完全相同的問題。

任何幫助將不勝感激。 乾杯,鋁。

+0

邊注:建議對SEO的目的和可用性有404頁,而不是重定向。 –

回答

1

我不認爲你可以直接重定向錯誤的文件,但你可以捕捉不存在的文件和文件夾

!-f意味着不是一個文件!-d表示不一個目錄,$1是無論是在(.*)(路徑在URL)

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) /index.php?errorurl=$1 [R=301,L] 
+0

感謝Patrick幫助我在聊天窗口。我沒有使用?errorurl = $ 1,因爲我不需要捕獲錯誤的URL。再次感謝。 – Almeister9

0
ErrorDocument 404 /404.php 

您可以將404錯誤模板放置在您想要的任何位置。例如,你可以將所有的錯誤消息的文件夾,名爲在errormessages

ErrorDocument 404 /errormessages/404.php 
+0

他已經知道如何設置錯誤文檔,因爲你可以看到他在他的問題中使用它。他想要的是重定向到另一個位置,這樣導致404不再顯示的URL。簡單地設置errordocument只是讓它在同一個URL上呈現該文檔。 –

+0

嗯。這讓我思考。 AM我以錯誤的方式回答這個問題。我應該製作一個自定義的404.php文件,該文件除了立即重新指向主頁 – Almeister9

+0

之外沒有任何內容:header('location:index.php');或者其他的東西? – Almeister9