none
Еще раз про переадресацию сайта с www на сайт без www RRS feed

  • Вопрос

  • Здравствуйте,

    Необходимо настроить редирект, чтобы пользовали, набрав сайт с www попадали на сайт без www.

    Лично решил это путем:

    1) Добавил сайт в Диспечер вида www.site.ru, создал новую папку и указал к ней физический путь.

    2) В web.config добавил:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <httpRedirect enabled="true" destination="http://site.ru/" httpResponseStatus="Permanent" />
        </system.webServer>
    </configuration>

    где site.ru - сайт без www.

    Все хорошо работает.

    Вопрос. Есть ли другие способы? Правильнее, проще, глобальнее для всех сайтов? Создаётся ли дополнительная нагрузка на сервер, если таким способом создать вввешные сайты с редиректом для десятков сайтов?


    16 июня 2016 г. 10:33

Ответы

  • Для выбора, многие хостинг провайдеры по линейки Windows, в качестве варианта решения предлагают следующий универсальный вариант:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    <system.webServer>
    <rewrite>
          <rules>
            <rule name="Redirect from www to non-www" stopProcessing="true">
              <match url="^(.*)$" ignoreCase="false" />
              <conditions logicalGrouping="MatchAll">
                <add input="{HTTP_HOST}" pattern="^www\.(.+)$" />
              </conditions>
              <action type="Redirect" url="http://{C:1}/{R:1}" redirectType="Permanent" />
            </rule>
          </rules>
    </rewrite>
    </system.webServer>
    </configuration>



    Best Regards, Andrei ...
    MCP

    Этот вариант тоже предполагает создание дополнительного сайта с этой конфигурацией. Уже делал проще, с другой конфигурацией.

    Вопрос был в других вариантах, может глобальных настроек для всего веб-сервера IIS, чтобы упростить процесс настройки и все работающие сайты попадали под это правило.

    • Помечено в качестве ответа Sergey Kochedikov 23 июня 2016 г. 7:02
    22 июня 2016 г. 7:21
  • Хорошо, тогда я до конца не понимаю работу вашей конфигурации. Мы создаём сайт с www, в него помещаем эту конфигурацию, при запросе к сайту с WWW он ведь перемещает пользователя на другой ресурс без www или что, изменяет адрес сайта?

    Вам не следует создавать отдельно сайт с www и non-www. Вам следует создать только один сайт, далее прописать вхождения с www и без www и т.п. в "привязка" (binding).


    Best Regards, Andrei ...
    MCP


    • Изменено SQxModerator 22 июня 2016 г. 9:22 добавлена картинка
    • Помечено в качестве ответа Sergey Kochedikov 23 июня 2016 г. 7:02
    22 июня 2016 г. 9:20
    Модератор

Все ответы

  • В IIS вы можете добавить модуль переадресации и настроить в нём.

    Сазонов Илья

    https://isazonov.wordpress.com/

    16 июня 2016 г. 11:01
    Модератор
  • Этот модуль называется Настройка перенаправления HTTP?

    Если да, то какой адрес указывать, который с www или без?

    16 июня 2016 г. 11:13
  • Собственно это и есть ваш вариант HTTP Redirects http://www.iis.net/configreference/system.webserver/httpredirect

    Второй вариант, более универсальный, использовать URL Rewrite http://blogs.iis.net/owscott/iis-url-rewrite-rewriting-non-www-to-www


    Сазонов Илья

    https://isazonov.wordpress.com/


    16 июня 2016 г. 11:38
    Модератор
  • Для выбора, многие хостинг провайдеры по линейки Windows, в качестве варианта решения предлагают следующий универсальный вариант:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    <system.webServer>
    <rewrite>
          <rules>
            <rule name="Redirect from www to non-www" stopProcessing="true">
              <match url="^(.*)$" ignoreCase="false" />
              <conditions logicalGrouping="MatchAll">
                <add input="{HTTP_HOST}" pattern="^www\.(.+)$" />
              </conditions>
              <action type="Redirect" url="http://{C:1}/{R:1}" redirectType="Permanent" />
            </rule>
          </rules>
    </rewrite>
    </system.webServer>
    </configuration>



    Best Regards, Andrei ...
    MCP

    16 июня 2016 г. 11:58
    Модератор
  • Собственно это и есть ваш вариант HTTP Redirects http://www.iis.net/configreference/system.webserver/httpredirect

    Второй вариант, более универсальный, использовать URL Rewrite http://blogs.iis.net/owscott/iis-url-rewrite-rewriting-non-www-to-www


    Сазонов Илья

    https://isazonov.wordpress.com/



    Все предложенные вариант предполагают создание дополнительного сайта с конфигурацией редиректа на другой. Я уже так делал, пример выложил. Вопрос был в возможности сделать по другому, в том числе без здания доп. сайтов в панели управления IIS.

    А второй вариант предполагает настройку с сайта без www, на сайт с www. Перенастроить обратно у меня не получилось.

    22 июня 2016 г. 7:18
  • Для выбора, многие хостинг провайдеры по линейки Windows, в качестве варианта решения предлагают следующий универсальный вариант:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    <system.webServer>
    <rewrite>
          <rules>
            <rule name="Redirect from www to non-www" stopProcessing="true">
              <match url="^(.*)$" ignoreCase="false" />
              <conditions logicalGrouping="MatchAll">
                <add input="{HTTP_HOST}" pattern="^www\.(.+)$" />
              </conditions>
              <action type="Redirect" url="http://{C:1}/{R:1}" redirectType="Permanent" />
            </rule>
          </rules>
    </rewrite>
    </system.webServer>
    </configuration>



    Best Regards, Andrei ...
    MCP

    Этот вариант тоже предполагает создание дополнительного сайта с этой конфигурацией. Уже делал проще, с другой конфигурацией.

    Вопрос был в других вариантах, может глобальных настроек для всего веб-сервера IIS, чтобы упростить процесс настройки и все работающие сайты попадали под это правило.

    • Помечено в качестве ответа Sergey Kochedikov 23 июня 2016 г. 7:02
    22 июня 2016 г. 7:21
  • Этот вариант тоже предполагает создание дополнительного сайта с этой конфигурацией. Уже делал проще, с другой конфигурацией.
    Указанный мной вариант не предполагает создание отдельного сайта, как например который Вы изначально использовали как 301 редирект.


    Best Regards, Andrei ...
    MCP

    22 июня 2016 г. 8:55
    Модератор
  • Хорошо, тогда я до конца не понимаю работу вашей конфигурации. Мы создаём сайт с www, в него помещаем эту конфигурацию, при запросе к сайту с WWW он ведь перемещает пользователя на другой ресурс без www или что, изменяет адрес сайта?
    22 июня 2016 г. 9:02
  • Хорошо, тогда я до конца не понимаю работу вашей конфигурации. Мы создаём сайт с www, в него помещаем эту конфигурацию, при запросе к сайту с WWW он ведь перемещает пользователя на другой ресурс без www или что, изменяет адрес сайта?

    Вам не следует создавать отдельно сайт с www и non-www. Вам следует создать только один сайт, далее прописать вхождения с www и без www и т.п. в "привязка" (binding).


    Best Regards, Andrei ...
    MCP


    • Изменено SQxModerator 22 июня 2016 г. 9:22 добавлена картинка
    • Помечено в качестве ответа Sergey Kochedikov 23 июня 2016 г. 7:02
    22 июня 2016 г. 9:20
    Модератор
  • Хорошо, тогда я до конца не понимаю работу вашей конфигурации. Мы создаём сайт с www, в него помещаем эту конфигурацию, при запросе к сайту с WWW он ведь перемещает пользователя на другой ресурс без www или что, изменяет адрес сайта?

    Вам не следует создавать отдельно сайт с www и non-www. Вам следует создать только один сайт, далее прописать вхождения с www и без www и т.п. в "привязка" (binding).


    Best Regards, Andrei ...
    MCP



    Спасибо за объяснение и помощь. Действительно, ваш вариант проще и все работает как надо.

    Жаль всё-таки нет глобальных настроек для таких случаев :)

    23 июня 2016 г. 7:18