asp.net - 使用 asp.net 重写 URL。是否需要配置?

标签 asp.net configuration url-rewriting

我正在尝试在我的项目中启用重写的网址。 这篇文章描述得很好: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 处理程序,因此不会被重写。

您可以在网站的应用程序配置中更改此配置:

  1. 打开 IIS 管理器并右键单击网站,选择“属性”
  2. 在“主目录”选项卡上,点击“配置...”按钮。
  3. 单击“插入...”按钮插入通配符应用程序映射。
  4. 在“可执行文件:”中插入 aspnet_isapi.dll 的路径,在我的例子中为 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll(注意:此路径在您的服务器上可能有所不同)。
  5. 请记住取消选中“验证该文件是否存在”
  6. 点击“确定”!

所以!现在,您的所有请求都应该定向到 ASP.NET 处理程序,从而捕获到您的 URL 重写器中,无论扩展名如何。

但我必须承认,我有点不确定这将如何影响您网站的性能,通过 ASP.NET 处理程序路由对静态文件、CSS、图像等的所有请求。也许其他人对此有话要说。

/丹尼斯:-)

关于asp.net - 使用 asp.net 重写 URL。是否需要配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3599088/

相关文章:

configuration - LDAP 联合用户 - 自动将电子邮件验证设置为 true

c# - Webforms应用程序中的ASP.NET 3.5 C#自定义错误页面

.htaccess - 从查询字符串中删除字符

.htaccess - HTACCESS 重写的 URL 正在重定向查询参数

javascript - 使用 jQuery 将字符串 append 到 url

css - AJAX 日历扩展器适用于本地和主机,但主机中的样式不会呈现,

asp.net - 使用 Mono 在 Linux 上运行时要查找的 ASP.NET 2.0 Web 应用程序中的问题

ASP.Net session 变量——设置 session 变量然后重定向

javascript - 在服务器端运行javascript

通过 EC2 进行类似 Heroku 的部署和环境配置