2011-06-25 31 views
1

大多數htaccess 404錯誤規則都基於絕對目錄位置,例如/404.php。我想要一個與它所在位置相關的位置(所以當我從WAMP中的測試環境轉移到現場時,我不必指望我編輯文件的權利)。如何編輯.htaccess文件以指向404錯誤文檔的相對目錄?

不幸的是,

ErrorDocument 404 404Error.php 

剛打印出404Error.php到瀏覽器,它不叫真正的錯誤頁面像

ErrorDocument 404 /FOOBAR/404Error.php 

一樣。

編輯:

我想我還不夠清楚。測試環境是一個WAMP本地服務器,錯誤文件位於/FOOBAR/404Error.php,而'live'服務器位於www.fubar.com/404error.php - 將其放入根目錄。

+1

除了通過子目錄(例如'localhost/foobar/index.php')和域名訪問您的網站時出現所有這些混亂和問題,爲什麼不將您本地WAMP上的每個站點設置爲單獨的條目將具有唯一的域名。您可以通過將1行添加到'hosts'文件('C:\ Windows \ System32 \ drivers \ etc \ hosts')來輕鬆僞造域名。創建一個像foobar.dev這樣的域名,在WAMP中創建一個新網站,將網站的根目錄指向這個'.../foobar /'文件夾並通過'http:// foobar.dev/index.php'訪問它。 – LazyOne

+1

這樣的'hosts'條目看起來像'127.0.0.1 foobar.dev' – LazyOne

+0

如果你做出這個解決方案,我會接受它 - 它不回答我的字面問,但它確實解決了問題。有幾個細節我不確定(設置WAMP創建網站根目錄?不會消除在WAMP上有其他站點的能力?),但它看起來是一個非常好的解決方案。 – RonLugge

回答

3

這是怎麼回事?

ErrorDocument 404 ../directory/404page.html 
+1

爲簡單起見。 – Cyclone

+0

唉,不起作用。我編輯了我原來的問題,但問題是該文件將從非根目錄移動到根目錄。 – RonLugge

+0

對不起,如果我仍然不明白你的要求,但是不能在你的主頁文件所在的根目錄中放置「ErrorDocument 404 404page.html」(www.foobar.com/index.php )?然後,每個子目錄將引用該原始.htaccess文件以顯示404。 – Tycho

1
RewriteBase /FOOBAR/ 
ErrorDocument 404 404Error.php 

這工作過,但第谷的解決方案是一個比較優雅。如果你不打算在/FOOBAR/以外的任何地方使用.htaccess,那麼只使用這個。

+0

如上所述,感謝努力(和+1),但不起作用,因爲我要從非根目錄轉到根目錄的情況。 – RonLugge