Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
服务器间URL模式的迁移_Url_Redirect_Nginx_Dns - Fatal编程技术网

服务器间URL模式的迁移

服务器间URL模式的迁移,url,redirect,nginx,dns,Url,Redirect,Nginx,Dns,我是一个网站的系统管理员,该网站正在从普通HTML文件的URL模式迁移到动态内容管理系统 例如,旧URL类似于www.example.com/books/somefolder/book31Chapter23.html,而新URL类似于www.cms.example.com/x?book=31 该站点托管在两台服务器上,一台“旧”服务器在主域www.example.com上提供静态旧URL,另一台“新”服务器在子域www.CMS.example.com上提供CMS Web服务器是nginx,CMS

我是一个网站的系统管理员,该网站正在从普通HTML文件的URL模式迁移到动态内容管理系统

例如,旧URL类似于www.example.com/books/somefolder/book31Chapter23.html,而新URL类似于www.cms.example.com/x?book=31

该站点托管在两台服务器上,一台“旧”服务器在主域www.example.com上提供静态旧URL,另一台“新”服务器在子域www.CMS.example.com上提供CMS

Web服务器是nginx,CMS是用yii(PHP)编写的,但这在概念上对这个问题并不重要

有许多URL,只有部分内容已迁移到新的CMS,因此我们有三种情况:

  • 请求未迁移内容的旧URL的用户:在 这种情况下,web服务器(nginx)提供来自“旧”服务器的内容 服务器

  • 请求新URL(已迁移内容)的用户:已提供此服务 直接由新服务器执行

  • 请求已迁移内容的旧URL的用户: 请求到达旧服务器。有一个映射列表,我们有 nginx执行从旧url到新url的临时重定向,因此 流量被重定向到新服务器中的CMS

  • 到目前为止,这已经起到了作用,随着新内容的迁移,重定向映射列表也会更新

    问题是,我希望CMS的第二台服务器将内容作为主域example.com而不是子域CMS.example.com,这和临时重定向似乎会影响谷歌的搜索引擎优化等

    理想情况下,在第三种情况下,我希望在不使用子域的情况下永久重定向到新的CMS URL模式,同时注意,当前CMS托管在不同的服务器中(如果需要,我可以将所有内容合并到一个服务器中)。对于第二种情况,用户将使用裸域而不是子域访问新URL

    我如何在当前设置中实现这一点(使用nginx重定向、DNS或任何需要的东西)?在两台服务器之间迁移URL是否有更好的设置


    谢谢

    您是否尝试使用第三个案例的临时重定向?它会告诉谷歌不要保存新的URL,否则你的第二个选择就是做代理传递,问题是我们谈论的URL有多少?他们越多,处理起来就越困难。谢谢。是的,正如前面所说的“我们让nginx做一个临时重定向”,这就是它目前的工作方式。我有数千个URL要迁移。