2010-01-12 40 views
1

我已經解決了通過ErrorDocument將所有uri轉換爲一個頁面的解決方案。如何在.htaccess中獲取ErrorDocument來輸出錯誤的uri參數?

這背後的原因是發送文件和文件夾(好網站)到一個頁面。但是,我需要將URI字符串發送到index.php?uri = string。這是可能通過ErrorDocument,或者我該怎麼做?

所以我需要重寫

http://www.something.com/games/specific-game

http://www.something.com/index.php?uri=/games/specific-game

這是不可能的,如果,怎麼樣?

回答

2

如果您的服務器支持服務器端包含(SSI),那麼你使用以下404.shtml爲您的ErrorDocument:

<html> 
<header> 
<meta http-equiv="Refresh" content="0; url=/index.php?uri=<!--#echo var="REQUEST_URI" -->"> 
</header> 
</html> 

編輯:有一個簡單的方法:創建一個PHP文件爲您的ErrorDocument,你可以在陽光下做任何事情! :)

EDIT2:您可以通過訪問原始URI $_SERVER['REQUEST_URI']

EDIT3:哎呀,如果你只是重定向到index.php同一臺主機上,你可以設置index.php文件作爲您的ErrorDocument,並檢測請求被重定向從404錯誤通過檢查是否$_SERVER['REDIRECT_STATUS'] == '404'

+0

是的,但..我需要得到該用戶輸入的URI,是不正確的..是作爲變量發送到這樣的PHP ErrorDocument呢? – Skuta 2010-01-12 12:59:00

+0

新信息:它不起作用,因爲它被重定向到index.php?uri = <! - #echo var = AND在參數中沒有URI。 – Skuta 2010-01-12 13:10:47

+0

這意味着你的服務器不支持SSI,那麼只需使用PHP即可。你可以使用'$ _SERVER ['REQUEST_URI']'來訪問原始URI。 – Lukman 2010-01-12 13:17:35