Php
更快的選項:通過 PHP 重定向到 PHP 或 Apache mod 重寫重定向到 PHP?
與使用 PHP 的標頭重定向核心功能從一個 PHP 文件重定向到另一個文件相比,我想確定使用 Apache 的 .htaccess mod rewrite 是否是一種更快的重定向到 PHP 文件的方法。
我環顧四周,找不到關於這個主題的任何資訊。任何幫助,將不勝感激。
注意:我假設“重定向”是指實際上不使用的重寫規則
$$ R $$標誌,而是將請求“重定向”到不同的 PHP 文件 - 例如根本沒有標誌或$$ L $$旗幟。 如果這個假設是錯誤的,那麼請看看我的“關於性能的註釋”的論點,它仍然成立。
.htaccess 規則肯定會更快!
原因如下:
- 使用 .htaccess 規則:當請求進入 Apache 時,它將檢查 .htaccess 以查看是否需要對該請求進行任何處理;注意到重寫規則,它會將請求重新路由到 PHP,站點訪問者將立即獲得最終結果
- 使用 PHP
header
:請求進來,由 Apache 處理,然後交給 PHP,然後 PHP 向訪問者的瀏覽器發送一個頁面重定向標頭,瀏覽器發送另一個請求,Apache 處理它,把它交給 PHP,只有在你訪客終於得到了他想要的!性能注意事項:在任何情況下(即使在千兆 LAN 上),上面的選項 #1 都會更快。正則表達式可能很慢,但 Apache 是一個已經在記憶體中的 C 程序,而 PHP 是一種解釋語言,它必須在處理之前讀取並載入腳本文件。因此,我實際上希望 Apache 的重寫規則有更好的性能。不過,主要因素是方法 #2 的額外 HTTP 響應請求。
如果你堅持用 PHP 來做,那麼考慮一下:
- 記憶體您在 PHP 應用程序中生成的所有輸出
- 如果您檢測到重定向條件 - 銷毀記憶體的輸出,然後
- 包括所需的 PHP 文件以生成新的輸出 - 或呼叫將產生所需輸出的函式,以防您需要不同的東西
這種方法也將比
header
基於 a 的方法更快。