【问题标题】:web.config azure websites friendly url-rewriting routing with manual code writingweb.config 天蓝色网站友好的 url 重写路由和手动代码编写
【发布时间】:2013-07-10 08:27:29
【问题描述】:

我使用 Sublime 2 作为文本编辑器创建了一个 Zurb Foundation html/css/js 项目作为平面文件。我已经为用于部署到 Azure 网站的 Windows 设置了本地 git 和 github。我的 html 导航在小提琴下面。我想要做的是创建友好的 url 路由以从页面名称中删除 .html。由于该站点只有 8 页,因此我想手动创建/更新 web.config 文件,而不必使用 Visual Studio。

http://jsfiddle.net/setbon/smvdV/

下面是我的 web.config 代码,它位于根目录中,并设置为重定向 www。到没有www的规范域,我需要添加什么规则才能使.html成为友好的url?

再一次......我不想使用必须使用 asp.net 路由框架 - 它只有 8 页所以......手动编码规则似乎更有效。

        <?xml version="1.0"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Canonical Hostname" stopProcessing="false">
          <match url="(.*)" />
          <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
            <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" />
          </conditions>
          <action type="Redirect" url="http://{C:2}{REQUEST_URI}" redirectType="Permanent" />
        </rule>

        <rule name="Convert to lower case" stopProcessing="true">  
          <match url=".*[A-Z].*" ignoreCase="false" />  
          <action type="Redirect" url="{ToLower:{R:0}}" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration> 

【问题讨论】:

    标签: azure url-rewriting web-config zurb-foundation azure-web-app-service


    【解决方案1】:

    尝试查看这些答案网址:

    更新:

    它适用于静态文件:

            <rules>
                <rule name="Rewrite Rule">
                    <match url=".*" />
                    <conditions>
                        <add input="{StaticRewrites:{REQUEST_URI}}" pattern="(.+)" />
                    </conditions>
                    <action type="Rewrite" url="{C:1}" />
                </rule>
                <rule name="Remove html Extension" stopProcessing="true">
                    <match url="^(.+)\.html$" />
                    <action type="Redirect" url="{R:1}" redirectType="Permanent" />
                </rule>
            </rules>
            <rewriteMaps>
                <rewriteMap name="StaticRewrites" defaultValue="">
                    <add key="/file1" value="/file1.html" />
                    <add key="/file2" value="/file2.html" />
                    <add key="/folder/file3" value="/file3.html" />
                </rewriteMap>
            </rewriteMaps>
    

    更多信息:

    【讨论】:

    • TX.我将代码 frm stackoverflow.com/questions/10210936/… 粘贴到我的 web.config 中,当我导航到该站点时,以前显示 .html 的页面现在确实不再显示 .html 但整个站点现在显示为严格的 html并且没有显示任何 CSS 样式 - 现在也是如此,除了主页 - 所有链接现在都显示“您要查找的资源已被删除、名称已更改或暂时不可用。”这是我的 web.config 代码:cropme.ru/aef47f95179e6f097af13e1641217f14
    • 在答案中使用更新的信息,你只需要添加你的静态规则。
    • @JulieS。您必须使用自己的静态文件名更改 rewriteMap 键和值。如果要删除 HTML 扩展,则需要插入另一条规则。
    • 我想从每个页面中删除 .html。我正在寻找一个规则,它可以为所有页​​面执行此操作,而无需编写我的文件名。有没有我可以用的?
    猜你喜欢
    • 1970-01-01
    • 2011-01-22
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    相关资源
    最近更新 更多