我想知道在使用执行301重定向的效率方面(即较少使用服务器资源)是否有任何差异。htaccess或使用Wordpress的wp\\u safe\\u重定向功能?(这将通过插件实现)。
我不介意将重定向放入。手动访问htaccess文件。但是,如果没有更大的开销让插件执行重定向(使用wp\\u safe\\u redirect),那么为了简单起见,我宁愿选择这条路线(对于其他站点管理员)。
有谁能建议这些方法中哪一种对服务器的影响最小?
考虑到CYBMETA和Mark Kaplen的观点,我得到的印象是,我的问题的答案不是黑白的。我现在明白了这取决于许多因素,在大多数使用场景中,我是否使用可能会产生很小的实际差异。htaccess或插件。
插件提供了易用性,但会在一定程度上增加PHP执行的开销,以及Wordpress内核加载两次以处理重定向,然后处理页面呈现的开销。我意识到,在充分配置的服务器上,这不太可能造成显著的性能影响,除非站点非常繁忙,并且重定向的URI占了大量的站点点击。我理解使用。htaccess用于重定向意味着中的其他行。htaccess必须对站点的每个资源请求进行解析,无论它是否用于重定向URI。同样,在适当的服务器上,这应该对现实世界的影响最小。如果需要随着时间的推移设置大量重定向,那么使用插件对最终用户来说肯定更方便。
因此,考虑到这些理解,我无法将其中任何一个答案视为“已接受的答案”。我根据它们各自的优点接受它们,并相应地对它们进行了评分。
SO网友:Mark Kaplun
与所有性能问题一样,答案可能是“视情况而定”
这将取决于“正常”流量与需要重定向的流量的比率。
在htaccess中这样做的原因是,在每个请求上都需要读取和解析文件,并且需要进行一些url匹配。在htaccess中简单地实现了301,就像“哦,只要在文件中的任何地方放几行”,这意味着即使在提供图像时,时间也会被浪费掉。
在PHP方面,这取决于重定向实现的好坏,可能它们都不是最优的。如果您的服务器使用基于apcu的对象缓存运行PHP7,并且不需要任何DB访问来检测和处理重定向,那么实现可能会非常快。
现在让我们假设php解决方案比htacces慢10000倍。根据一些统计数据-http://www.sitepoint.com/average-page-weight-increases-15-2014/ 平均一个页面执行大约100个http请求,为每个请求提供服务会导致htaccess更改的额外“惩罚”。根据这些数字,如果您的重定向少于所服务页面的1%,php解决方案将具有更好的性能。
总之,出于稳定性以及易于开发和维护的原因,您应该尽可能避免更改htaccess。要使用htaccess解决方案,您需要证明它要好得多,这是不容易做到的,而且您可能会在这方面浪费更多的精力,而不是以一种不太理想的方式提供重定向所需的精力,当然,您所取得的所有成就就是CPU利用率平均达到49%,而不是50%。
像这样的微优化只对facebook和google重要,其他网站都希望有足够的流量,这样的问题会成为一个明显的问题。