我很想知道是否有辦法讓PHP頁面或其他服務器端邏輯攔截URL,如果URL「www.mysite.com/about/mission_statement」被查詢,但我不' t在「about/mission_statement」有一個頁面,我可以從「some/other/folder/with/pages」提供內容。有沒有辦法爲沒有實際支持頁面的URL提供網頁?
有沒有人知道這是可能的,還是我必須確保我有一個頁面可用於我希望處理的每個URL地址?
我很想知道是否有辦法讓PHP頁面或其他服務器端邏輯攔截URL,如果URL「www.mysite.com/about/mission_statement」被查詢,但我不' t在「about/mission_statement」有一個頁面,我可以從「some/other/folder/with/pages」提供內容。有沒有辦法爲沒有實際支持頁面的URL提供網頁?
有沒有人知道這是可能的,還是我必須確保我有一個頁面可用於我希望處理的每個URL地址?
您不能直接在PHP中執行此操作,因爲爲了處理給定的URL而調用PHP頁面,但您可以在Web服務器中執行此操作。
假設阿帕奇看看URL重寫
http://httpd.apache.org/docs/2.2/rewrite/
特別是對於你的情況,副標題
http://httpd.apache.org/docs/2.2/rewrite/remapping.html
是相關的。
IIS具有類似的功能。
謝謝!這正是我所期待的。 – BlazeCell
您使用Apache再次假設,那麼你有多種選擇:針對特定的網頁/內容
使用重寫規則(如在另一個答案指定),或在您的.htaccess文件有一行任何重定向請求不存在(404)到您選擇的特定位置/文件。
這用在.htaccess文件或者在您的文檔根目錄或選擇其他目錄下面的代碼通常envoked:如果您使用PHP動態頁面通過鍵入
ErrorDocument 404 /whatever/path/to/file.php
,說ID或其他一些動態值,例如:
http://www.somedomain.com/page.php?id=4
,那麼你需要創建一個重定向到您所選擇的頁面,如果內容不符或存在的函數。
感謝您將我轉到ErrorDocument處理程序,這應該也是有用的。 – BlazeCell
我們在我們的系統上使用了404處理程序,這是一種黑客攻擊,它不時讓我們感到困惑!事實上,我們從來沒有任何404的!所以我真的會鼓勵Eric J的解決方案,因爲它可以讓你控制你想重定向的url模式,並且仍然可能使用404處理程序來處理404。 – Gavin
是的,這並不完美。這是解決問題的一種簡單方法。理想情況下,添加一個可以單獨處理404的404腳本:) – nickhar