2009-10-08 98 views
0

我使用mod_rewrite在Apache服務器上設置了一些重寫規則。我在想,如果有可能寫一個規則,基本上是重新引導用戶到主頁如果頁面沒有即找到PHP URL重寫

http://example.com/test <-- does not exist 

不過,我想,如果用戶是導航到該域,它們會自動重新定向到:

http://example.com/ 

考慮到這一點,我不想要的網址仍然顯示「http://example.com/test」我想的URL來更新自己成爲「http://example.com/」。

回答

3
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ http://domain.com/ [L,R=301] 

實質上,「如果請求的文件名不是文件或目錄,重定向」。

+0

這是超快速的大聲笑...我會給它一個去感謝。 – James 2009-10-08 14:40:21

+0

像魅力一樣工作,謝謝! – James 2009-10-08 14:43:20

+0

輕微問題......我的其他重定向規則不再有效,所有內容都重新定向到根目錄!有任何想法嗎?例如一個規則是「RewriteRule^queries(。*)$ index.php?m = feedback」。爲什麼這不再起作用? – James 2009-10-08 14:50:46

2

我不會使用HTTP重定向,而是將錯誤文檔與正確的錯誤狀態碼一起發送。

+0

+1我可以將用戶重定向到錯誤文檔並只顯示正確的錯誤。我一直在尋找關於如何重定向URL +更新URL的正確規則 – James 2009-10-08 14:48:21