在ASP.NET MVC / IIS7中重写Url的最简单方法是什么?

时间:2009-09-30 18:18:17

标签: asp.net iis-7 url-rewriting

我正在IIS7上开发一个ASP.NET MVC应用程序,我需要从我的应用程序中的目录和它的子目录重写对所有文件的请求到另一个目录。这些文件是图像,样式表,经典webforms文件和vanilla html文档。

实现这一目标的最简单方法是什么?我已经尝试过安装ManagedFusion的URL重写器,但它只是在我安装它之后给了我一个访问被拒绝的错误。我甚至不确定它是否与ASP.NET MVC兼容。

谢谢,

阿德里安

4 个答案:

答案 0 :(得分:3)

从IIS7开始,IIS附带了一个可用于重写URL的模块。

http://learn.iis.net/page.aspx/460/using-url-rewrite-module/

  

“IIS 7.0的Microsoft URL重写模块提供灵活的基于规则的重写引擎,可用于执行广泛的URL操作任务,包括但不限于:

     
      
  • 使用动态网络应用程序启用用户友好和搜索引擎友好的URL;
  •   
  • 根据HTTP标头和服务器变量重写URL;
  •   
  • 网站内容处理;
  •   
  • 根据网址细分或请求元数据控制对网站内容的访问。“
  •   

答案 1 :(得分:1)

小心重写url和“经典的webforms文档” - 主要是url重写可以打破回发。

无论如何,听起来你有一个正在使用的遗留应用程序。为什么不添加一个被忽略的路由,让IIS / ASPNET本地处理它的业务?


感谢您的澄清。在这里重写Url可能会有点意义。另一个可能更清晰的选择是设置虚拟目录(实际上是一系列虚拟目录),以便为Crystal报告提供所需的路径。

如果你想做重写的事情,那么使用原生网址重写模块 - 它非常光滑,应该是最好的支持。

答案 2 :(得分:1)

还有.NET URL Rewriter and Reverse Proxy,与Apache上的mod_rewrite相同,完全免费,与其他人不同。

答案 3 :(得分:0)

Helicon有一个很好的工具,售价99美元。它与mod_rewrite大致相同,因此很容易找到有用的帮助。我已经好运了。