.htaccess文件是否太大

时间:2010-06-30 20:52:54

标签: apache .htaccess

我们公司正在改变网络平台,我们希望能够保留我们的Google搜索结果,因此我们计划将301重定向放入我们的htaccess文件中。

我担心的是,如果我输入所有这些重定向(总共可能达到3000 - 5000),它会减慢服务器的速度,因为它会进行所有这些检查。

有没有人知道如果有这么大的htaccess文件会导致任何问题?我有一个非常快的站点服务器(8核)所以我有相当大的马力。

4 个答案:

答案 0 :(得分:3)

我怀疑它会明显减慢服务器速度。但请先检查一下。

在www / temp文件夹中创建一个.htaccess 5k行文件,其中包含一些您将要使用的重写规则。查看使用和不使用.htaccess文件访问页面所需的时间。

答案 1 :(得分:2)

其他答案有一些很好的建议,但是如果你不想使用一些替代重写规则,我强烈建议将这些行放在主服务器配置文件而不是.htaccess文件中。这样,Apache只会在启动时解析它们一次,并且它可以简单地引用内部数据结构,而不必在每个请求上检查.htaccess文件。实际上,Apache开发人员建议完全不使用.htaccess文件,除非您无权访问主服务器配置。如果您不使用.htaccess个文件,则可以设置

AllowOverride None

在主配置中,然后Apache甚至不必花时间寻找文件。在繁忙的服务器上,这可能是一个有用的优化。

您可以考虑做的另一件事(与上述相关)是使用RewriteMap指令将URL重写“外包”到外部程序。您可以将此外部程序编写为,例如,将旧URL存储在哈希表中,或者适当的任何类型的优化。

答案 2 :(得分:1)

嗯。我没有任何难以理解的数据是否Apache可能会出现许多重定向的性能问题,但是我会感到不安,因为这些巨大的htaccess文件会在每个请求上进行解析,无论它是新的还是旧的URL。

如果可能的话,我倾向于使用服务器端语言处理“旧”URL与新旧URL的匹配,以及用于查找的数据库表,如果只是为了便于维护。

是否以及如何可能取决于您旧的新URL结构。例如,如果所有旧URL都具有类似

的通用结构
www.domain.com/cms/folder/pagename.htm

可以与新结构分开,我会将所有“旧”流量重定向到中央脚本文件(无论您的服务器平台是什么,ASP,PHP ......)并在那里进行简单的查找和标题重定向。

答案 3 :(得分:0)

根据参考文档:http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html我想在每次请求时都会拖动处理所有3k x2。

此外,我认为管理这些变革规则将是一件好事 - 手动它是......