C# 从Winforms或控制台应用程序重写URL

C# 从Winforms或控制台应用程序重写URL,c#,winforms,asp-classic,url-rewriting,C#,Winforms,Asp Classic,Url Rewriting,我正在将经典ASP页面导入新的Sitefinity安装。不幸的是,现有网站通过Helicon ISAPI Rewrite 3大量使用URL重写 我正在生成需要导入的页面列表,方法是对旧站点中的导航菜单进行爬网。不幸的是,这些不是从任何类型的中央存储库动态生成的,因此我发现构建站点层次结构的最佳方法是对站点进行爬网 在Sitefinity nav层次结构中创建页面节点以保存旧页面中的内容时,我需要能够在大致与其在旧站点文件系统中的位置相同的位置创建新页面。然而,重写规则使得这一点难以确定。例如,我

我正在将经典ASP页面导入新的Sitefinity安装。不幸的是,现有网站通过Helicon ISAPI Rewrite 3大量使用URL重写

我正在生成需要导入的页面列表,方法是对旧站点中的导航菜单进行爬网。不幸的是,这些不是从任何类型的中央存储库动态生成的,因此我发现构建站点层次结构的最佳方法是对站点进行爬网

在Sitefinity nav层次结构中创建页面节点以保存旧页面中的内容时,我需要能够在大致与其在旧站点文件系统中的位置相同的位置创建新页面。然而,重写规则使得这一点难以确定。例如,我可能会得到一个解析旧HTML的链接表单,如:

http://www.mysite.com/product_name
它被重写(而不是重定向)到

我需要一种从第一个url获取第二个url的方法。首先想到的是以某种方式使用
.htaccess
文件来解析URL,获得结果,并将其用于导入过程的其余部分

有没有一种方法可以在不涉及web服务器的情况下从Winforms应用程序执行此操作?我意识到我可以修改其中一个ASP包含,例如页脚,以发出包含每个页面重写URL的注释,但如果可以避免的话,我宁愿不对现有代码进行不必要的更改

更新 比如说,

http://www.keil.com/arm/
改写为

http://www.keil.com/products/arm/mdk.asp

据推测,原始网站必须从
产品名称
中猜出
产品类别
(除非
某些产品类别
实际上是文字)。我冒昧地猜测,它位于一个数据库中的某个地方,您可以从WinForms应用程序连接到该数据库。从这里开始,它应该像使用正则表达式一样简单,将正确的数据片段映射到URL的正确部分,对吗?还是我完全没有抓住重点?@MBabcock不,它不在数据库中。要是…就好了URL重写器通过RegEx(标准Apache.htaccess语法)在
product\u name
中查找模式并重写它们<代码>类别在这里有点用词不当。你能举一个
产品名称
的例子吗?
http://www.keil.com/products/arm/mdk.asp