我们公司正在改变网络平台,我们希望能够保留我们的Google搜索结果,因此我们计划将301重定向放入我们的htaccess文件中。
我担心的是,如果我输入所有这些重定向(总共可能达到3000 - 5000),它会减慢服务器的速度,因为它会进行所有这些检查。
有没有人知道如果有这么大的htaccess文件会导致任何问题?我有一个非常快的站点服务器(8核)所以我有相当大的马力。
答案 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。
此外,我认为管理这些变革规则将是一件好事 - 手动它是......