【问题标题】:How do I make virtual URLs point to .aspx pages in asp.net deployed on an IIS? (preferably without IIS)如何使虚拟 URL 指向部署在 IIS 上的 asp.net 中的 .aspx 页面? (最好没有 IIS)
【发布时间】:2010-09-17 23:23:19
【问题描述】:

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

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

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

注意:

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

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

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

->

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

编辑:我正在运行 IIS 6.0

【问题讨论】:

    标签: .net asp.net iis friendly-url


    【解决方案1】:

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

    您要求最好的方式,但我认为没有一种“最好”的方式,我见过人们从 xml 文件中提供漂亮的名称,其他人则依赖 IIS7.0 重写功能

    【讨论】:

      【解决方案2】:

      也许urlMappings 对你有用:

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

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

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

            如果是这样,你可以试试url重写模块(iis7)的“user friendly url - rule template”功能

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

            【讨论】:

              猜你喜欢
              • 2013-04-15
              • 1970-01-01
              • 2012-02-15
              • 2010-10-11
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-02-12
              • 1970-01-01
              相关资源
              最近更新 更多