我有一个 ASP.NET MVC 应用程序,它可以很好地与少数 Controller 一起工作,例如“家”、“服务”和“去”。 “Go” Controller 是所有内容所在的地方。
现在营销人员来了,说他们不想在 URL 中看到“go”这个词。换句话说,而不是:
http://mydomain.com/go/geography/africa
他们想要:
http://mydomain.com/geography/africa
我无法为他们可能想要的每条路径创建一个 Controller ...那么有没有办法在 Global.asax.cs 中编写我的路由,以便处理对“服务”和“主页”的请求正常方式,但其他任何内容都会隐式路由到“go” Controller ?
最佳答案
您使用的是 IIS7 吗?为此,最简单的方法可能是在服务器上实现 URL 重写,而不是在 Global.asax.cs
中修改你的路由。
编辑: 我只在 Apache 中做过 URL 重写。对于它的值(value),可以使用这样的东西来完成:
RewriteEngine On
RewriteRule ^go/(.+)$ /$1 [R=301,L]
看看http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/和 http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module/ .希望他们能为您提供足够的信息,以便能够在 IIS 7 中正常工作
关于c# - ASP.NET MVC : how to make all unspecified URLs direct to one controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5326317/