我最近完成了一个项目,将一个相当大的网站迁移到一个干净整洁的小型网站。这意味着我必须考虑搜索引擎已编入索引的大量页面,并使用将它们适当地重定向到新网站上的相关页面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 是否包含数组中的参数,并将重定向发送回目标。
使用重写规则来实现这一点有点复杂。