我正在尝试在我的项目中启用重写的网址。 这篇文章描述得很好:urlrewriting by scottgu 当我在本地主机上运行它时它运行得很好,但是当我将它上传到我的主机(.net 3.5)时,它就不起作用了!我总是被重定向到 404 页面!
是否需要进行配置才能启用此功能? 正如 scottgu 所说不,但我不明白为什么它不起作用......
谢谢
//2010 年 9 月 2 日更新
实际上是否有一种方法可以在没有iis7或在服务器上安装像ISAPI Rewrite这样的模块的情况下启用路由或重写? 看来我的 ASP.NET 主机很糟糕...
最佳答案
在本地主机环境中,您可能正在 ASP.NET 开发服务器上运行网站。该服务器被设置为捕获所有请求 (* . *) 并通过 ASP.NET 管道运行它们。
另一方面,II6 配置为仅通过 ASP.NET 管道发送一些请求(即 *.aspx、*.asmx、*.ashx)。因此,如果您 try catch 对“/my/fine/url”之类的 url 的请求,该请求将永远不会传递给 ASP.NET 处理程序,因此不会被重写。您可以在网站的应用程序配置中更改此配置:
- 打开 IIS 管理器并右键单击网站,选择“属性”
- 在“主目录”选项卡上,点击“配置...”按钮。
- 单击“插入...”按钮插入通配符应用程序映射。
- 在“可执行文件:”中插入 aspnet_isapi.dll 的路径,在我的例子中为 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll(注意:此路径在您的服务器上可能有所不同)。
- 请记住取消选中“验证该文件是否存在”
- 点击“确定”!
所以!现在,您的所有请求都应该定向到 ASP.NET 处理程序,从而捕获到您的 URL 重写器中,无论扩展名如何。
但我必须承认,我有点不确定这将如何影响您网站的性能,通过 ASP.NET 处理程序路由对静态文件、CSS、图像等的所有请求。也许其他人对此有话要说。
/丹尼斯:-)
关于asp.net - 使用 asp.net 重写 URL。是否需要配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3599088/