apache - 重定向到 www 会导致一秒钟的延迟吗?

标签 apache magento redirect litespeed

我在运行 Litespeed Web 服务器的共享主机上使用 Magento 1.6.2.0,并且我已经开始研究加速页面加载的方法。目前,我正在使用 Pingdom 来查看请求,当我输入不带 www 的 URL 时,我似乎从一开始就损失了整整一秒。浏览器重定向到www页面,只是时间太长了。这是我可以解决的问题吗?我认为我可以更改 Magento 的基本网址以不包含 www,但随后我认为转至 www 网址时会有相同的延迟。

最佳答案

我查看了您提供的链接,确实看到了大约 1 秒的延迟,然后才收到前缀为 www. 的 URL 的 302 重定向。并非完全巧合的是,实际页面 HTML 的加载时间也相当长(大约 1.7 秒)。

对于大型 Web 应用程序来说,这是一个相当常见的问题:即使要返回一个简单的响应(例如重定向),整个应用程序也必须加载并运行其启动代码。将此与未针对该应用程序进行优化的速度不太快的共享网络服务器结合起来,您可能会获得相当慢的页面加载时间。这并不是 Magento 独有的。我自己在 MediaWiki 中看到了同样的效果,并且我希望其他应用程序也会出现这种情况。

显而易见的解决方案就是避免重定向:只要确保所有网址都具有正确的主机名,就不会出现由于主机名错误而导致的额外延迟。 Magento 本身可能会为其自己的 URL 处理这个问题,但如果您有任何其他代码(或静态页面)链接到您的 Magento URL,请确保它们使用正确的主机名。

您还可以注册Google Webmaster Tools (以及其他搜索引擎的类似工具)并在那里配置您的首选域(位于网站配置 → 设置下),以便 Google 会自动在指向您的任何链接前面添加 www.它索引的网站。

您还可以(并且应该)尝试减少 Magento 的启动时间。这不仅会加快重定向速度,还会加快所有其他页面的加载速度。我对 Magento 不太熟悉,无法就此提供详细的建议,但对于任何大型 PHP 应用程序来说,明显的第一步是确保您使用 PHP accelerator例如APC。

最后,将访问者重定向到正确主机名的最快方法是让您的网络服务器直接发送重定向,而无需调用 Magento。有关如何执行此操作的详细信息取决于您正在使用的服务器软件,但是 apparently LiteSpeed supports与 Apache 的 mod_rewrite 相同的 RewriteRule 语法,因此您应该只需将以下行添加到主 .htaccess 文件中即可做到这一点:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.mmmspeciosa\.com$ [NC]
RewriteRule ^(.*)$ http://www.mmmspeciosa.com/$1 [R=301,L]

(顺便说一句,我在这里使用 HTTP 301 permanent redirects 而不是 Magento 似乎正在使用的 HTTP 302 temporary redirects 。这不仅根据 HTTP standard 更合适,而且与搜索引擎配合得更好,将 301 重定向视为索引目标 URL 而不是重定向源的指示。如果此重定向类型在 Magento 中不可配置,我会认为它是一个错误。如果可配置,则应将其设置为 301。)

关于apache - 重定向到 www 会导致一秒钟的延迟吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10156849/

相关文章:

redirect - nginx 重定向掩码

web-services - 服务器超时问题

ruby-on-rails - Apache 对 POST 请求大小的限制

magento - 有什么方法可以在 magento 的 paypal 付款方式页面上更新 css 吗?

magento - 如何将选项卡添加到销售订单管理页面?

angular - 处理来自 Angular 2 的身份验证重定向

WordPress http 到 https 重定向

python - 在 ubuntu/apache2 : virtual host configuration 上部署 flask 应用程序

php - Magento 通过扩展安装添加带有可过滤选项(无结果)的属性

php - CodeIgniter 显示重定向消息