【问题标题】:ASP.NET: How to remove the file name.aspx from URLsASP.NET:如何从 URL 中删除文件 name.aspx
【发布时间】:2011-05-22 02:15:39
【问题描述】:

我正在尝试为 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/

尝试了几个在网上找到的代码,但它们都给了我内部错误。

提前致谢!

【问题讨论】:

  • 您使用的是 IIS6 还是 IIS7?您能否提供一个到目前为止您尝试过的代码示例?

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


【解决方案1】:

我已经在很多项目中使用了开源 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. 将 .NET 可执行文件的路径(与用于处理 .aspx 文件的路径相同)放在“可执行文件”字段中
  7. 取消选中“验证文件是否存在”
  8. 按“确定”

你完成了:)

对于 WebForms 项目来说,这是一个相当不错的解决方案,但请确保您对其进行了良好的测试,并确认 GoogleBot 仍然可以访问您的网站。

【讨论】:

  • 嘿,非常感谢您提供的信息,但我无法弄清楚如何在 Windows Server 2008 和 IIS6 上安装它。这可能吗?有没有更简单的方法来做到这一点?我只想从 url 中删除“Filename.aspx”,只删除文件名和扩展名。
  • 可能有更简单的方法......也许可以使用第 5 步“插入通配符应用程序映射”?如果您添加一个通配符,它​​采用不带扩展名的文件名并使用 .NET 处理它(步骤 5-6),并检查文件是否存在,您可能只需将“file.aspx”重命名为“file”而不延期?我不确定它是否会起作用,如果它起作用,它会很hacky,但你可以尝试一下:)
【解决方案2】:

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

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

【讨论】:

  • 嘿,谢谢你的回答。但我在 Windows Server 2008 上运行 IIS6。我还能这样做吗?
猜你喜欢
  • 2015-10-30
  • 2018-01-14
  • 1970-01-01
  • 2022-01-02
  • 2020-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多