Internet Explorer игнорирует хэштег в URL - PullRequest
9 голосов
/ 14 марта 2012

У меня настроены следующие правила перезаписи URL:

<rules>
            <rule name="Clean URL" stopProcessing="true">
                <match url="^([A-Za-z0-9]+)([\?A-Za-z0-9#=&amp;]+)?$" />
                <action type="Rewrite" url="{R:1}.aspx{R:2}" />
            </rule>
            <rule name="CleanTest" stopProcessing="true">
                <match url="^([a-z0-9/]+).aspx([a-zA-Z0-9\?#=&amp;]+)?$" />
                <action type="Redirect" url="{R:1}{R:2}" />
            </rule>
        </rules>

То, что это делает, показывает чистый (не .aspx) URL в адресной строке клиента и дополнительно перенаправляет каждый чистый вызов URL на соответствующую .aspx-страницу. Это "вообще" работает нормально. Однако, когда мой URL-адрес содержит хэш-тег, то есть Administration.aspx#first хэш-тег отсутствует после перенаправления только в IE, он отлично работает в FF / Chrome, что может вызвать это?

Результат после нажатия на ссылку в Chrome / FF:

Administration#first

Результат в IE (9):

Administration

Добавление: отлично работает для GET-параметров.

Ссылка: Login.aspx?logout=1

IE: Login?logout=1

FF / Chrome: Login?logout=1

1 Ответ

2 голосов
/ 14 марта 2012

Поскольку хэштегом в основном является то, что браузер на стороне клиента должен знать, где прокручивать страницу, мне кажется логичным, что не все браузеры отправляют его на сервер. Однако я не уверен, что спецификация говорит об этом.

...