2

我在运行 Litespeed Web 服务器的共享主机上使用 Magento 1.6.2.0,并且我已经开始研究加快页面加载的方法。目前我正在使用 Pingdom 来查看请求,当我键入没有 www. 浏览器重定向到www页面,只是需要很长时间。这是我可以解决的问题吗?我认为我可以将 Magento 的基本 URL 更改为不包含 www,但是我认为在转到 www url 时我会有同样的延迟。

4

1 回答 1

4

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

对于大型 Web 应用程序来说,这是一个相当普遍的问题:即使是像重定向这样的简单响应,整个应用程序也必须加载并运行其启动代码。再加上一个不那么快的共享网络服务器,它没有针对那个应用程序进行优化,你会得到相当慢的页面加载时间。这不是 Magento 独有的。我自己在 MediaWiki 上也看到过同样的效果,我希望其他应用程序也会出现这种情况。

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

您还可以注册Google 网站管理员工具(以及其他搜索引擎的类似工具)并在那里配置您的首选域(位于站点配置 → 设置下),以便 Google 将自动www.添加到它索引的您站点的任何链接。

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

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

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

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

(顺便说一下,我在这里使用的是HTTP 301 永久重定向,而不是 Magento 似乎正在使用的HTTP 302 临时重定向。这不仅根据HTTP 标准更合适,而且与搜索引擎一起使用效果更好,它处理301重定向作为索引目标URL而不是重定向源的指示。如果此重定向类型在Magento中不可配置,我会认为它是一个错误。如果它是可配置的,则应将其设置为301。)

于 2012-04-14T21:10:38.393 回答