IIS 7 URL Rewrite - домен CamelCase и строчные буквы все остальное - PullRequest
0 голосов
/ 08 июня 2011

Я пытаюсь настроить правила перезаписи для своего сайта в iis 7 с помощью модуля перезаписи URL.Если имя сайта "WonderfulWidgets"

, я хочу, чтобы оно всегда было http://WonderfulWidgets.com.
НЕ: wonderfulwidgets.com
НЕ: WONDERFULWIDGETS.com

Я также хочу, чтобы после WonderfulWidgets.com все было в нижнем регистре.
IE WonderfulWidgets.com/best-widgets.

Я выполнил нижний регистрURL переписать, и я также сделал это так, что он удалит все ведущие www, прежде чем WonderfulWidgets.com

Моя проблема заключается в том, что моя перезапись URL-адреса в нижнем регистре также снижает доменное имя. Мне нужна помощь в написании доменного имени 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 Ответ

3 голосов
/ 22 ноября 2011

DNS-имена обычно обрабатываются как нечувствительные к регистру, и поэтому большинство (все?) Веб-браузеры отображают доменное имя в нижнем регистре в адресной строке.Насколько мне известно, вы не можете изменить это поведение, изменив то, что вы возвращаете в своем HTTP-ответе.

С RFC 4343 :

В соответствии с первоначальным решением о разработке DNSсравнения при поиске имен для DNS-запросов должны выполняться без учета регистра.

Из Википедия :

Доменные имена интерпретируются независимо от регистра.

Кажется, что все браузеры предпочитают строчные буквы.

...