【问题标题】:Faster redirect, PHP or htaccess?更快的重定向,PHP 还是 htaccess?
【发布时间】:2011-10-04 15:56:30
【问题描述】:

重定向特定(特定)页面、PHP 或 htaccess 的更快方法是什么?考虑到许多不同的页面可能需要在高流量站点上进行此类重定向。例如什么更快:

PHP(不涉及数据库查询,只是简单的普通 php 重定向)

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

htaccess

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

【问题讨论】:

    标签: php apache .htaccess


    【解决方案1】:

    视情况而定。通常,.htaccess 会更快,因为您不会有调用 PHP 的开销。但是——如果您在文档根级别的单个 .htaccess 文件中有 1000 个重定向,那么 Apache 将需要在每次页面加载时检查每个重定向。即,您现在将不得不进行 1000 次正则表达式检查,而不仅仅是提供 index.php,然后 then 提供 index.php。总的来说,我想说如果你有很多重定向很多不会被重定向的页面,那么在 PHP 中进行。在这种情况下,您无需为不需要重定向的页面支付任何额外开销。

    【讨论】:

      【解决方案2】:

      .htacess是在调用php之前处理的,所以如果你能创建它,肯定会更快

      【讨论】:

      • 但是。 .htaccess 本身会为每次点击加载/解析,因此 PHP 在某些情况下可能会更快(对于一个非常复杂的 .htaccess),尤其是在缓存到位的情况下。
      • 如果有一个复杂的.htaccess,无论如何都会被解析并添加到处理PHP的时间,所以那里也没有任何收获
      【解决方案3】:

      如果使用了.htaccess,Apache 将在任何 PHP 处理开始之前对其进行处理。我还没有完成使用其中一个或另一个的基准测试,但是当两者都存在时,.htaccess 总是会更快。

      另请注意,.htaccess 重定向可以使用正则表达式编写以应用于多个旧文件,因此您的工作量会减少。

      【讨论】:

      • htaccess 总是会更快...是的,但仅适用于有兴趣通过 htacess 的页面;如果您的 99% 的页面没有被重定向,但是您的 .htaccess 中有 1 000 行:那么为每个请求解析 .htaccess 的速度会比不通过 php 重定向的 1% 的页面减慢更多
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-09
      • 2017-09-16
      相关资源
      最近更新 更多