Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/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
C# 继承了一个具有60000个url重定向的ASP.NET网站应用程序_C#_Asp.net_Redirect_Url Redirection - Fatal编程技术网

C# 继承了一个具有60000个url重定向的ASP.NET网站应用程序

C# 继承了一个具有60000个url重定向的ASP.NET网站应用程序,c#,asp.net,redirect,url-redirection,C#,Asp.net,Redirect,Url Redirection,不是开玩笑。。使用IIS插件UrlRewrite,我们正在运行一个映射配置,该配置将推送8mb。它包含60000条“从->到”规则。配置文件太大了,我们必须调整注册表以适应配置文件的大小 重定向主要包括: .html->.aspx在迁移到asp.net期间 已重命名的页面 短期活动重定向回主页 所有重定向都被复制了18次,每个语言文件夹(如/us/、/uk/)都复制一次 我们正准备大幅减少重定向的数量,因此这不是我的担忧。我关心的是每周大约有3-4个新的重定向请求。手动将重定向条目添加到配置文件

不是开玩笑。。使用IIS插件UrlRewrite,我们正在运行一个映射配置,该配置将推送8mb。它包含60000条“从->到”规则。配置文件太大了,我们必须调整注册表以适应配置文件的大小

重定向主要包括:

  • .html->.aspx在迁移到asp.net期间
  • 已重命名的页面
  • 短期活动重定向回主页
  • 所有重定向都被复制了18次,每个语言文件夹(如/us/、/uk/)都复制一次
  • 我们正准备大幅减少重定向的数量,因此这不是我的担忧。我关心的是每周大约有3-4个新的重定向请求。手动将重定向条目添加到配置文件并传播到生产服务器会变得单调而耗时

    正在讨论的是,将60000个重定向视为“遗留重定向”,并将在单独的线程上减少。对于将来的所有重定向,内容编辑器将创建与包含响应的“发件人”url模式匹配的文件。重定向到“收件人”地址

    我对这种方法感到震惊,因为我们将拥有大量带有URLRewite的重定向和越来越多分散在网站上的单行重定向文件。我预测一场史诗般的灾难。最糟糕的是我想不出更好的解决办法


    我想问大家的问题是,管理这样一个大型且不断变化的网站重定向的最佳实践是什么?有没有一种.net技术能够很好地解决这一难题?

    我将放弃大规模重定向。谈论噩梦。只需在正确的路径上提供您想要的页面

    如果您收到一个不存在的页面请求,而不是显示404 Not Found,则让Web服务器通过在数据存储中查找匹配的“新目的地”(这可以通过特殊的ASP页面完成)来处理该请求。您的数据存储将包含新旧映射,如果存在一个匹配项,用户将被重定向。如果不是,则显示真正的404(以及一条亲切的消息给用户以更新他们的链接)

    这使您摆脱了编写大规模重写规则的工作,并将旧映射到新映射的管理放入数据库(why by jove,why not!)


    希望这有助于产生新的想法……

    您是否考虑过在ASP.NET网站前提供URL映射服务?URL映射服务可以将规则存储在自己的数据存储中,将它们保存在缓存中,以便在给定URL的情况下快速生成映射URL,并将用户重定向到ASP.NET站点上的映射URL。您可以独立于ASP.NET站点发布URL映射服务,以实现职责分离。这些服务是否建立为301(永久)重定向?如果是这样的话,你是否发现最老的车流量很大?如果没有,则可以安全地删除它们。:)您是否考虑过使用数据库来存储这些重定向规则(并构建一个前端来管理它们)。然后,您只需要几个核心重定向,这些重定向永远不会改变,但会处理传入其中的任何URL。我可能需要一些重定向示例来推荐实际的解决方案。