gpt4 book ai didi

.htaccess - htaccess 重定向性能

转载 作者:行者123 更新时间:2023-12-04 04:45:54 25 4
gpt4 key购买 nike

我们需要从旧网站到新网站进行 301 重定向 ~ 8000 个 URL。不幸的是,URL 之间没有关系,如下所示:

例如
http://www.URL1.com/content/default.asp?var_a=s2&var_b=8443&back=home

http://URL2.co.uk/news/article/news-title-goes-here/

我们可以将所有重定向规则导入到一个 htaccess 文件中,或者我们可以设置一个 mysql 数据库和 PHP 脚本来执行查找然后重定向。

考虑到条目的数量,从性能角度来看,哪个是最好的下降路线?

如果 htaccess 能够完成任务,编写重定向的最佳方法是什么?

Redirect 301 /content/default.asp?var_a=s2&var_b=8443&back=home http://URL2.co.uk/news/article/news-title-goes-here/


RewriteCond %{QUERY_STRING} ^var_a=s2$
RewriteCond %{QUERY_STRING} ^var_b=8443$
RewriteRule ^/content/default.asp$ http://URL2.com/news/article/news-title-goes-here/? [L,R=301]

非常感谢

最佳答案

通常 htaccess 文件会在少量重写/重定向时更快。

关于重定向:

8,000 并不是一个非常大的重定向数量。根据 Apache 为您运行的方式,使用 htaccess 文件执行此操作可能最终会为每个 Apache 线程添加额外的内存,因为每个线程可能需要将整个列表保存在内存中,但这不会超过几兆最多内存。现在内存很便宜。您的服务器是否有严重的内存限制 - 这意味着您是否接近分页?

从 Apache 直接查找内存中的哈希值的 CPU 命中率将可以忽略不计(假设整个内容都存储在内存中 - 所以基本上假设您回答“不”,因为您的服务器有严重的内存限制)。

必须为每个文件解析一个 PHP 页面,然后进行 MySQL 查找,然后将结果返回给 PHP 的延迟肯定会比仅使用 Apache 造成更大的打击。请记住,您需要加载 PHP 解释器、连接到 MySQL 服务器、解析结果并从中构建页面。与简单的重定向相比,这是一个相当复杂的过程。

关于重写:

你已经在加载 ModRewrite 了吗?这是一个非常该死的高效野兽。假设您没有进行比上述更复杂的重写,那么使用它绝对是安全的。

如果您还没有加载它,并且您可以轻松制作一个简单的重写列表,那么您应该问自己:您的服务器是 CPU 限制更多还是 RAM 限制更多。如果更多 RAM 受限,请使用 mod_rewrite,因为您的规则可能比重定向列表小几个数量级。

尽管如此,您需要确定的主要事情是您是否真的需要在每个服务器请求上运行它。

例如:

如果你知道你需要在服务器上/content/目录中的每个请求上运行它,然后把它放在/content/中的 .htaccess 文件中

但是,如果您只需要在对/content/default.asp?var_a=blah 的请求上运行它,并且还有很多其他不需要重定向的/content/default.asp 请求,那么请使用 PHP 查找.

关于.htaccess - htaccess 重定向性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18187773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com