2011-10-04 54 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