我正在尝试在我的项目中启用重写的网址。 这篇文章中描述的非常好:urlrewriting by scottgu 当我在localhost上运行它时,它工作得非常好,但是一旦我将它上传到我的主机(.net 3.5),它就无法正常工作!我总是被重定向到404页面!
是否需要配置才能启用此功能? 正如斯科特说不,但我不知道为什么它不起作用......
感谢
//更新2.09.2010
实际上是否有一种方法可以在没有iis7的情况下启用路由或重写,或者能够在服务器上安装类似ISAPI Rewrite的模块? 看起来我有一个糟糕的asp.net主机...
答案 0 :(得分:4)
在您的localhost环境中,您可能正在ASP.NET开发服务器上运行该网站。该服务器设置为捕获所有请求(*。*)并通过ASP.NET管道运行它们。
另一方面,II6被配置为仅通过ASP.NET管道发送一些请求(即* .aspx,* .asmx,* .ashx)。因此,如果您正在尝试捕获对“/ my / fine / url”这样的URL的请求,该URL将永远不会传递给ASP.NET处理程序,因此不会被重写。
您可以在网站的应用程序配置中更改此配置:
等等!现在,您的所有请求都应该定向到ASP.NET处理程序,因此无论扩展名如何,都会在您的URL重写器中捕获。
但我必须承认,我有点不确定这将如何影响您网站的性能,通过ASP.NET处理程序路由所有静态文件,CSS,图像等请求。也许那里的其他人有话要说。
/丹尼斯: - )
答案 1 :(得分:1)
答案 2 :(得分:0)
以下是如何在ASP.NET WebForms中使用新的System.Web.Routing的示例。
http://deepumi.wordpress.com/2010/02/27/url-routing-in-asp-net-web-forms/