Php

更快的選項:通過 PHP 重定向到 PHP 或 Apache mod 重寫重定向到 PHP?

  • August 9, 2015

與使用 PHP 的標頭重定向核心功能從一個 PHP 文件重定向到另一個文件相比,我想確定使用 Apache 的 .htaccess mod rewrite 是否是一種更快的重定向到 PHP 文件的方法。

我環顧四周,找不到關於這個主題的任何資訊。任何幫助,將不勝感激。

注意:我假設“重定向”是指實際上不使用的重寫規則

$$ R $$標誌,而是將請求“重定向”到不同的 PHP 文件 - 例如根本沒有標誌或$$ L $$旗幟。 如果這個假設是錯誤的,那麼請看看我的“關於性能的註釋”的論點,它仍然成立。

.htaccess 規則肯定會更快!

原因如下:

  1. 使用 .htaccess 規則:當請求進入 Apache 時,它將檢查 .htaccess 以查看是否需要對該請求進行任何處理;注意到重寫規則,它會將請求重新路由到 PHP,站點訪問者將立即獲得最終結果
  2. 使用 PHPheader:請求進來,由 Apache 處理,然後交給 PHP,然後 PHP 向訪問者的瀏覽器發送一個頁面重定向標頭,瀏覽器發送另一個請求,Apache 處理它,把它交給 PHP,只有在你訪客終於得到了他想要的!

性能注意事項:在任何情況下(即使在千兆 LAN 上),上面的選項 #1 都會更快。正則表達式可能很慢,但 Apache 是一個已經在記憶體中的 C 程序,而 PHP 是一種解釋語言,它必須在處理之前讀取並載入腳本文件。因此,我實際上希望 Apache 的重寫規則有更好的性能。不過,主要因素是方法 #2 的額外 HTTP 響應請求。

如果你堅持用 PHP 來做,那麼考慮一下:

  1. 記憶體您在 PHP 應用程序中生成的所有輸出
  2. 如果您檢測到重定向條件 - 銷毀記憶體的輸出,然後
  3. 包括所需的 PHP 文件以生成新的輸出 - 或呼叫將產生所需輸出的函式,以防您需要不同的東西

這種方法也將比header基於 a 的方法更快。

引用自:https://serverfault.com/questions/88919