Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache .htaccess文件是否太大_Apache_.htaccess - Fatal编程技术网

Apache .htaccess文件是否太大

Apache .htaccess文件是否太大,apache,.htaccess,Apache,.htaccess,我们公司正在改变网络平台,我们希望能够保留我们的谷歌搜索结果,因此我们计划将301重定向放入我们的htaccess文件中 我担心的是,如果我加入所有这些重定向(可能总共3000-5000个),它会在服务器进行所有这些检查时减慢服务器的速度 有人知道这么大的htaccess文件是否会导致任何问题吗?我有一个相当快的站点服务器(8个内核),所以我有相当大的可用马力。嗯。我没有任何确切的数字来判断Apache是否会因为这么多重定向而出现性能问题,但是我会感到不安,因为有这么大的htaccess文件可以

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

我担心的是,如果我加入所有这些重定向(可能总共3000-5000个),它会在服务器进行所有这些检查时减慢服务器的速度


有人知道这么大的htaccess文件是否会导致任何问题吗?我有一个相当快的站点服务器(8个内核),所以我有相当大的可用马力。

嗯。我没有任何确切的数字来判断Apache是否会因为这么多重定向而出现性能问题,但是我会感到不安,因为有这么大的htaccess文件可以在每次请求时解析,不管它是新的还是旧的URL

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

这是否可能以及如何可能取决于旧的URL结构和新的URL结构。例如,如果所有旧URL都有一个公共结构,如

www.domain.com/cms/folder/pagename.htm

这可以从新结构中分离出来,我会将所有“旧”流量重定向到一个中心脚本文件(无论您的服务器平台是什么,ASP、PHP……),并在那里执行简单的查找和头重定向

我怀疑这会明显降低服务器速度。但是先看看


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

根据参考文档:我想每次请求处理所有3k x2都需要拖拽


此外,我认为管理这些更改规则很难——手动操作是…

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

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


另一件你可以考虑做的事情(结合上面的内容)是使用<代码> ReWrimeMax < /C>指令“外包”URL重写到外部程序。您可以编写这个外部程序,例如,将旧URL存储在哈希表中,或任何适当的优化方式。

我将尝试一下。当我有一些真实的数据时,我会发布我的经验。你的测试成功了吗?你有真实的数据吗?我发现你可以在没有明显性能差异的情况下重定向301行。然而,一旦你有了几千个,RedirectMatch会让事情变慢。最后,我获取重定向并创建子目录,并将相关的重定向和重定向匹配行放在其中。