将NGINX与WordPress一起执行非模板URL重定向



case

我们有2个网站,每个网站都有不同的URL结构:

  • www.domain1.com/category/sub-category/ post-id /slug
  • www.domain2.net/category/sub-category/ yyyy/mm/dd /slug

每个网站都有一个单独的CMS(基于Java),一个单独的数据库(Postgres)和单独的存储(Amazon S3)。

计划

我们将拥有一个多站点CMS(WordPress),该CMS(WordPress)为以前的两个网站提供服务,其中一个数据库(MySQL)和一个存储空间。所有这些都已完成,我们处于最后阶段:迁移已从旧数据库完成到一个新的WordPress数据库,Amazone存储桶已将其合并为一个新的存储桶,多站点功能正常。

问题

我们想采用第二个网站的URL结构并将其用于两个网站,因此所有新的URL都将具有此结构:

  • www.domain1.com/category/sub-category/ yyyy/mm/dd /slug
  • www.domain2.net/category/sub-category/ yyyy/mm/dd /slug

我们关注的是第一个网站的旧URL,该网站已经在社交媒体上共享并由其他网站使用,如何将旧结构URL重定向到新结构,无法获得yyyymmdd来自旧URL,我们需要使用帖子的旧ID来查询数据库。

想法

我有一个想法,我们可以使用2列创建一个表(可能是Amazon DynamodB表或Redis):legacy-idnew-url,因此我将根据传统ID进行预先填充新的URL,以防止超载超载具有许多查询的数据库以获取新的URL。

但是,是否有一种将NGINX与此表链接的方法,因此Nginx将从旧的URL中提取post-id并使用该表以基于提取的post-id获取new-url

对这个人有任何帮助吗?

我认为使用嵌入式lua可以根据redis中的数据进行动态重写。

检查以下两个链接:LUA模块,Lua Redis驱动程序

另一个解决方案是使用您选择的语言编写重定向逻辑,并使用该语言的某些Web服务器编写逻辑,然后使用Proxy_pass Ngass指令将您的请求代理到该网络服务器。

最新更新