IIS 7 URL重写 - CamelCase域和小写其他所有内容

时间:2011-06-08 04:40:01

标签: iis url-rewriting

我正在尝试使用URL Rewrite模块在iis 7中为我的站点设置重写规则。如果站点名称是“WonderfulWidgets”

我希望它永远是http://WonderfulWidgets.com NOT:wonderfulwidgets.com
NOT:WONDERFULWIDGETS.com

我也希望WonderfulWidgets.com之后的所有内容都是小写的    IE WonderfulWidgets.com/best-widgets。

我已经完成了小写的url重写,我也做了它,所以它会在WonderfulWidgets.com之前删除任何领先的www

我的问题是我的小写网址重写也会降低域名。 我需要帮助编写CamelCase域名,并将其他所有内容重写为小写。

这是我在web.config中的内容:

<rewrite>
        <rules>
            <rule name="CanonicalHostNameRule1">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^WonderfulWidgets\.com$" negate="true" />
                </conditions>
                <action type="Redirect" url="http://WonderfulWidgets.com/{R:1}" />
            </rule>
            <rule name="RemoveTrailingSlashRule1" stopProcessing="true">
                <match url="(.*)/$" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                </conditions>
                <action type="Redirect" url="{R:1}" />
            </rule>
            <rule name="Default Document URL Rewrite" stopProcessing="true">
                <match url="(.*?)/?Default\.aspx$" />
                <action type="Redirect" url="{R:1}/" />
                <conditions>
                    <add input="{URL}" pattern="WebResource.axd" negate="true" />
                </conditions>
            </rule>
        </rules>
    </rewrite>

1 个答案:

答案 0 :(得分:3)

DNS名称通常被视为不区分大小写,因此大多数(所有?)Web浏览器在地址栏中以小写形式显示域名。据我所知,您无法通过更改HTTP响应中返回的内容来更改此行为。

来自RFC 4343

  

根据最初的DNS设计决定,对名称进行比较   查找DNS查询应该不区分大小写。

来自Wikipedia

  

域名以与案例无关的方式解释。

浏览器似乎都更喜欢小写展示。