1
我已經解決了通過ErrorDocument將所有uri轉換爲一個頁面的解決方案。如何在.htaccess中獲取ErrorDocument來輸出錯誤的uri參數?
這背後的原因是發送文件和文件夾(好網站)到一個頁面。但是,我需要將URI字符串發送到index.php?uri = string。這是可能通過ErrorDocument,或者我該怎麼做?
所以我需要重寫
到
這是不可能的,如果,怎麼樣?
我已經解決了通過ErrorDocument將所有uri轉換爲一個頁面的解決方案。如何在.htaccess中獲取ErrorDocument來輸出錯誤的uri參數?
這背後的原因是發送文件和文件夾(好網站)到一個頁面。但是,我需要將URI字符串發送到index.php?uri = string。這是可能通過ErrorDocument,或者我該怎麼做?
所以我需要重寫
到
這是不可能的,如果,怎麼樣?
如果您的服務器支持服務器端包含(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'
是的,但..我需要得到該用戶輸入的URI,是不正確的..是作爲變量發送到這樣的PHP ErrorDocument呢? – Skuta 2010-01-12 12:59:00
新信息:它不起作用,因爲它被重定向到index.php?uri = <! - #echo var = AND在參數中沒有URI。 – Skuta 2010-01-12 13:10:47
這意味着你的服務器不支持SSI,那麼只需使用PHP即可。你可以使用'$ _SERVER ['REQUEST_URI']'來訪問原始URI。 – Lukman 2010-01-12 13:17:35