ASP.NET:如何从URL中删除文件name.aspx

时间:2010-12-08 08:35:41

标签: asp.net .net url rewrite url-rewriting

我正在尝试为web.config文件编写重写规则,以便url将从中删除文件名,这意味着:

http://www.example.com/admin/Index.aspx
http://www.example.com/admin/Product.aspx

将成为:

http://www.example.com/admin/
http://www.example.com/admin/

http://www.example.com/Index.aspx
http://www.example.com/Product.aspx

为:

http://www.example.com/
http://www.example.com/Product/

尝试了在线发现的几个代码,但所有代码都给了我内部错误。

提前致谢!

2 个答案:

答案 0 :(得分:4)

我已经使用开源UrlRewriter在许多项目中执行此操作,它运行良好

http://urlrewriter.net/

为了使其工作,您必须将其添加到您的web.config文件中,如下所示:

<httpModules>
    <add type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" name="UrlRewriter" />
</httpModules>

并添加一个路由部分,它们有很好的文档,但基本上你提供了重写规则,看起来像这样:

<rewriter>    
    <rewrite url="~/([a-zA-Z0-9]+)$" to="~/$1.aspx" />
</rewriter>

将UrlRewriter dll文件添加到您的bin中,并将IIS设置为处理通配符:

  1. 在IIS管理器(inetmgr)中查找网站
  2. 在您的网站上打开属性
  3. 转到“主目录”标签
  4. 单击“应用程序设置”下的“配置”
  5. 点击“通配符应用程序地图”
  6. 下的“插入”
  7. 在“可执行文件”字段中输入.NET可执行文件的路径(与用于处理.aspx文件的路径相同)
  8. 取消选中“验证文件存在”
  9. 按“确定”
  10. 你完成了:)

    对于WebForms项目来说,这是一个非常好的解决方案,但要确保测试得很好,并确认GoogleBot仍然可以访问您的网站。

答案 1 :(得分:0)

我不确定你是否拥有它但是有了IIS7,你可以安装一个模块,你可以设置url重写规则。它会将适当的规则添加到您网站的web.config

微软的Scott Guthrie的指南可能有所帮助 - http://weblogs.asp.net/scottgu/archive/2010/04/20/tip-trick-fix-common-seo-problems-using-the-url-rewrite-extension.aspx