Модуль перезаписи URL.Правило не работает для URL, содержащих знак "+" - PullRequest
1 голос
/ 26 августа 2010

Следующее правило работает (успешно перенаправляет) для URL-адресов, таких как:

www.site.com/some/path

Но не работает (404) для URL-адресов, содержащих знак +:

www.site.com/some/p+a+t+h

Ине работает (404) даже при кодировании:

www.site.com/some/p%2Ba%2Bt%2Bh

Но работает , когда + идет после знака ?:

www.site.com/some/path?+

Правило:

<rule name="redirectForWww" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^www.site.com$" />
    </conditions>
    <action type="Redirect" url="http://site.com/{R:0}" />
</rule>

IIS 7.0, модуль перезаписи URL 2.0

1 Ответ

1 голос
/ 27 августа 2010

Знак плюс является зарезервированным разделителем в соответствии со спецификацией URI @ http://labs.apache.org/webarch/uri/rfc/rfc3986.html#reserved

, поэтому его нельзя (или не следует) использовать в имени файла / папки в URL-адресе.Тем не менее, в javascript GET data & mailto: links + приравнивается к пробелу.

...