簡體   English   中英

PHP 404響應和重定向

[英]PHP 404 response and redirect

我知道我可以使用.htaccess來簡單地設置404錯誤頁面。

據我了解,如果找不到頁面,則會將錯誤發送回瀏覽器,並顯示404頁面。 用戶可能會也可能不會意識到此“錯誤”。

我想做的是允許用戶鍵入page1.php,page2.php,page3.php等,然后轉到分別打印page1,page2,page3等的頁面。

原因是page1,page2,page3等的邏輯非常相似。我認為將用戶發送到同一頁面可能會更容易,該頁面隨后將使用PHP服務器變量來計算要執行的操作:確定是否是否有效頁,然后拋出404錯誤或打印正確的消息。

這可能嗎? 還是只是一個愚蠢的想法?

我希望該網址不受影響,並在用戶鍵入時保持不變。

謝謝。

這絕對不是愚蠢的想法。

提供內容的實例是Web服務器,如果找不到內容,則提供錯誤頁面。 如果要使用PHP處理該邏輯,則可以告訴Web服務器將所有請求傳遞到同一 PHP文件。 然后,您可以使用$_SERVER變量來確定用戶正在請求什么並提供內容,並發送正確的狀態代碼(例如404 )。

在Apache中,如果您使用的是2.2.16版或更高版本,則可以定義一個備用資源 這會將對不存在文件的請求重定向到指定文件。

<Directory /var/www/my_blog>
  FallbackResource index.php
</Directory>

在較早的Apache版本中,可以使用mod_rewrite重定向請求:

<Directory /var/www/my_blog>
  RewriteBase /my_blog

  RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-f
  RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-d
  RewriteRule ^ index.php [PT]
</Directory>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM