none
Проблема с редиректом с http на www https (Двойной редирект) 302 , 301

    Общие обсуждения

  • Привет. Имею сайт развернутый на IIS 8.5 с модулем REWRITE 2.0. Написал правило редиректа с http на www https с статусом 301. С одной стороны все работает. Но если в адрессную строку написать http://www.example.com то произойдёт редирект сначала на https://example.com - c статус кодом 302 , а затем редирект на https://www.example.com с статусом 301. Также проблема если мы указываем в дрессной строке такой адресс например http://www.example.com/blog/article , то происходит редирект на https://example.com - с кодом 302 , и потом на https://www.example.com с кодом 301. При этом праметры стираются из адрессной стоки, и переходим на главную страницу. Как я знаю все это плохо сказывается на продвижение сайта для поисковых систем (SEO). Является это ошибкой, или это особенность движка. Если да то как мне её решить, ведь нужно что бы  редирект был http://www.example.com на https://www.example.com - только с статусом 301 без повторного редиректа, а также с http://www.example.com/blog/article на https://www.example.com/blog/article  без перехода на главную страницу с тем же статусом. Можно ли решить данную проблему?. Заранее спасибо за помощь) Правила REWRITE

    <rewrite>
            <rules>
                <clear />
                <rule name="Redirects to www.domain.com" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
                        <add input="{HTTP_HOST}" pattern="^example.com$" />
                    </conditions>
                    <action type="Redirect" url="https://www.example.com/{R:0}" appendQueryString="true" redirectType="Permanent" />
                </rule>
                <rule name="Force WWW and SSL" enabled="true" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
                        <add input="{HTTPS}" pattern="off" />
                    </conditions>
                    <action type="Redirect" url="https://www.example.com/" appendQueryString="true" redirectType="Permanent" />
                </rule>
                <rule name="Remove trailing slash" enabled="true" stopProcessing="true">
                    <match url="(.*)/$" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Redirect" url="{R:1}" redirectType="Permanent" />
                </rule>
            </rules>
        </rewrite>