2

获得像堆栈溢出这样干净的 URL 结构的最佳方法是什么?

我需要为此使用 IIS 吗?或者有没有办法可以用asp .net中的某种映射文件来做到这一点?

我想要的网站有数百页,并且已经部署。
我想要一种需要尽可能少的更改的方法。

笔记:

  • 想要关于如何使 URL 友好的建议
  • 确实想要关于如何最好地管理这些友好 URL 以及如何创建映射的建议。

我基本上希望以 aspx 结尾的每个路径都没有 aspx 扩展名,而是看起来像是一个包含 index.aspx 的文件夹。

http://www.blahblahblahblahblah7CEE53E1.com/test.aspx

->

http://www.blahblahblahblahblah7CEE53E1.com/test/

编辑:我正在运行 IIS 6.0

4

5 回答 5

3

据我了解,您正在寻找一种工具来帮助您进行映射。

如果是这种情况,您可以尝试url 重写模块(iis7)的“用户友好 url - 规则模板”功能

规则模板用于提供一种为特定场景创建一个或多个重写规则的简单方法。URL 重写器模块包括一些用于一些常见使用场景的规则模板。除了 URL 重写模块 UI 还提供了一个用于插入自定义规则模板的框架。

于 2008-10-19T04:00:18.477 回答
3

也许urlMappings可以为你工作:

<system.web>
  <urlMappings enabled="true">
    <add url="~/test/" mappedUrl="~/test.aspx"/>
  </urlMappings>

要使其在 IIS6 上工作,您需要启用通配符映射。

于 2008-10-19T12:06:04.733 回答
2

Stackoverflow 使用System.Web.Routing。它最初来自 asp.net MVC,但可用于任何 asp.net 应用程序。不过,我不确定将路由改造成现有应用程序是多么容易或困难。

于 2008-10-19T05:35:29.920 回答
2

我一直在使用一个名为Ionic Rewriter的工具

它将使用正则表达式将您的无扩展 URL 重写为物理 URL 以进行处理。用户只看到无扩展名的,但是网络服务器看到 .aspx 等。

它似乎工作得非常好,而且很容易配置。

于 2008-10-19T11:52:35.650 回答
1

我不知道 IIS6.0 是否支持它,但我使用 web.sitemap,我为每个节点添加一个属性,该属性等于我想要的漂亮名称,然后使用 Application_onBegin 我将请求的漂亮 url 映射到网站地图...

你问最好的方法,但我不认为有一种“最好”的方法,我见过人们从 xml 文件中提供漂亮的名字,其他人依赖 IIS7.0 重写功能

于 2009-07-02T22:03:50.140 回答