2011-10-04 31 views
7

什麼是更快的方式來重定向一個特定的(特定)頁面,PHP或htaccess?考慮到許多不同的頁面可能需要在高流量站點上進行這種重定向。例如什麼是快:更快的重定向,PHP或htaccess?

PHP(不涉及數據庫查詢,只是簡單的純PHP重定向)

header("Location: /new.php",TRUE,301); 

htaccess的

redirect 301 old.php http://site.com/new.php 

回答

6

取決於。通常,.htaccess會更快,因爲您不會有調用PHP的開銷。但是,如果您在文檔根目錄級別的單個.htaccess文件中有1000個重定向,那麼Apache將需要在每次加載頁面時檢查其中的每一個。也就是說,你現在不得不做1000個正則表達式檢查,而,然後服務於index.php。總體而言,我會說,如果你有很多重定向很多頁面不會被重定向,那麼在PHP中執行。在這種情況下,您不需要爲不需要重定向的頁面支付額外開銷。

7

.htacess處理之前PHP是所謂的,所以如果你可以創建它,它肯定會更快

+2

但是, .htaccess本身被加載/解析爲每個命中,所以也許在某些情況下PHP可以更快(一個非常複雜的.htaccess),特別是與緩存。 –

+1

如果有一個複雜的.htaccess,它將被解析並添加到時間來處理PHP,所以沒有任何收益 – Einacio

2

如果使用htaccess在任何PHP處理開始之前,Apache都會處理它。我還沒有做過使用其中一個的基準,但是當兩者都存在時,htaccess總是會更快。

另外請注意,htaccess重定向可以使用正則表達式應用到多箇舊文件,所以在你的結束更少的工作。

+0

htaccess將永遠更快......是的,但僅限於那些擁有通過htacess的興趣;如果99%的網頁沒有被重定向,但是你的.htaccess中有1000行:那麼爲每個請求解析.htaccess的速度越來越慢,1%的網頁受益於無法通過PHP重定向 – spiritoo