如果你有大量的重定向需要实现,有没有办法编写更清晰的重写规则

如果你有大量的重定向需要实现,有没有办法编写更清晰的重写规则

我最近完成了一个项目,将一个相当大的网站迁移到一个干净整洁的小型网站。这意味着我必须考虑搜索引擎已编入索引的大量页面,并使用将它们适当地重定向到新网站上的相关页面301 Redirects

有超过 300 个唯一的 URL,我必须全部重定向。我使用模块apache mod_rewrite来实现重定向,因为大多数 URL 都包含GET parameters在您的标准Redirect声明中。

例如我有如下 URL:

https://olddomain/product.html?prod_id=143&id=234

以及像这样的重定向:

RewriteCond %{QUERY_STRING} prod_id=143&id=234$
RewriteRule ^product\.html$ /products/product-a? [L,R=301]

几乎所有重定向都是这种情况。我想我的问题是,我写下 300 个像上面这样的重定向是否正确,或者有没有“更干净”的方法来做到这一点?我听说太多重定向rewrite rules会降低服务器速度。

我很感激你们对此的意见,如果这不是寻求道歉的正确地方,我将删除并发布在相关的交流中。

答案1

我将在应用程序代码本身中实现这些类型的重定向,创建一个包含源和目标 URL 的数组,然后测试该 URL 是否包含数组中的参数,并将重定向发送回目标。

使用重写规则来实现这一点有点复杂。

相关内容