我有一个包含多个ASPX文件的文件夹
folder/file1.aspx
folder/file2.aspx
folder/file3.aspx
etc..
我需要将这些文件移动到另一个文件夹,并将其扩展名更改为静态html文件,如下所示。
folder2/file1.htm
folder2/file2.htm
folder2/file3.htm
etc..
我正在尝试优雅地重定向用户,我不确定如何继续?在.NET中是否可以拦截对aspx文件的请求并重定向到新目录中的html等效文件?
这也需要以编程方式完成,我不能将所有aspx文件保留在page_load中的301重定向的第一个文件夹中。如何获取对文件夹/ any_resource 的调用,获取资源的名称,替换.hpm的.aspx并使用修改后的资源名称重定向到新目录?
这一切都可能吗?
我在IIS 7上使用.NET framework版本4.
答案 0 :(得分:1)
查看URL重写功能。 IIS7支持它。它可以通过web.config文件完成,也可以使用IIS GUI创建规则。
它的作用是,如果你试图访问文件夹/ page.aspx服务器将自动获取folder2 / page.aspx。
您可以为每个页面提供完全匹配(单调乏味),也可以使用正则表达式并使用一个规则完成(如果所有页面在下一个文件夹中具有相同的名称。)
你要做的是抓住任何进入文件夹/ .aspx的东西,并使服务器返回folder2 / .aspx。
因此,用于捕获对文件夹// aspx的请求的正则表达式可能如下所示:
folder/(\w*).aspx
围绕\ w *的括号将使其可用于反向引用({R:1})
folder2/{R:1}.htm
以上是您的重定向网址。它的作用是获取文件名并在folder2中查找它的.htm版本。
如果你想重定向一切,只需带走.aspx和.htm。所以:
folder/(\w*)
和
folder2/{R:1}
这是一个快速教程,向您展示在IIS中的位置。创建规则时,请确保在“操作类型”下选择“重定向”而不是“重写”。