我正在与一个电子商务网站上的客户合作。我使用.htaccess实现了干净的URL。我还使用.htaccess解决了一些典型问题,例如将www重定向到非www并从URL中删除index.php。

该网站最近开始显着减速,有时甚至没有加载。该网站托管在GoDaddy上,当客户致电GoDaddy时,他们告诉他这是.htaccess文件,这使网站运行缓慢。由于我过去的经历,我发现这种情况不太可能发生,但我不确定100%。我的想法是,客户的网站很可能位于附近繁忙的共享服务器上,从而降低了网站速度。它并不总是很慢,而是一整天都是零星的,在某些时间点加载速度快,而在其他时间点加载速度慢。

.htaccess文件能否使网站慢下来以便爬行?如果是这样,是否有更好的方法用不同的重写规则来解决这些问题?

这是实际的.htaccess文件的样子:

    Options +FollowSymlinks
    RewriteEngine   On
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^www.example.net [NC]
    RewriteRule ^(.*)$ http://example.net/ [L,R=301]
    RewriteRule ^products/([0-9a-zA-Z\_\-]*)\.htm([l]?)$ index.php p=product&product_code= [L]
    RewriteRule ^catalog/([0-9a-zA-Z\_\-]*)\.htm([l]?)$ index.php p=catalog&catalog_code= [L]
    RewriteRule ^pages/([0-9a-zA-Z\_\-]*)\.htm([l]?)$   index.php?p=page&page_id= [L]
    RewriteRule ^index\.htm([l]?)$  index.php?p=home [L]
    RewriteRule ^site_map\.htm([l]?)$   index.php?p=site_map [L]
    RewriteCond      %{QUERY_STRING}    ^p=home$
    RewriteRule      (.*)               ?     [R=permanent]


我是.htaccess和regex的新手,因此任何指出的错误也会有所帮助。

评论

您可能会因服务器故障而更好。您是否检查过站点是否已被恶意软件破坏?

类似于ServerFault上的此问题:.htaccess是否会减慢我专用的服务器的速度?

或对StackOverflow:使用Mod-Rewrite时是否有负面影响?

会,但是您几乎不会注意到这些变化

如今,一次重要的事情是,如果您的服务器协议确实如此,那么它就是垃圾邮件。

#1 楼

从技术上讲,我认为它会放慢速度,因为要遵循规则,服务器必须首先对其进行处理。但是,我认为这不会降低服务器的爬网速度,也可能根本不会引起人们的注意。

我冒昧地猜测,说这是由GoDaddy的共享托管引起的。我以前曾与他们一起托管过,发现它们有时也非常慢。有时速度更快,而在其他时间更慢的事实也表明了这一点。

#2 楼

.htaccess文件可以使网站慢下来进行爬网吗?如果是这样,是否有更好的方法使用不同的重写规则来解决这些问题?


AllowOverride会影响服务器性能,因为Apache必须检查
.htaccess文件和parse指令。对于每个请求-如果可能,将所有指令保留在VirtualHost配置中以用于您的站点,或者仅对需要它们的目录启用.htaccess覆盖。


-
您想了解的有关Mod_Rewrite规则的所有信息,但害怕询问

您可能将无权访问GoDaddy共享托管帐户的VirtualHost配置,并且同一服务器上可能有成百上千的其他站点(并且您观察到性能会波动),这不仅是脚本或规则的问题。