Приветствую вас, читатели
Пафос, конечно, но все же.
Так вот, кому интересно, буду писать сегодня про то, как без всяких извращений (или же с ними) можно сделать перенаправление траффика сайта с http на https версию.
Значит, для начала Microsoft IIS 6.0. Старый добрый, он поддерживает кучу способов.1. Отдельный сайт для редиректа
Идея заключается вот в чем. У вас есть сайт №1, который работает по http (порт 80) и https (порт 443 - ssl).У этого сайта меняется порт TCP (80) на другой (81 или 8888 или 8112 - любой).
Кроме этого, включается опция “Require SSL”
Вы создаете еще один сайт, путь для него указываете отличный от других сайтов, например, C:\InetPub\WWWRoot2.
Далее, в свойствах сайта, на закладке “Home Directory” указываете, что все запросы нужно перенаправлять на https://example.com$V$Q.
Кроме того, выбираете опцию “The exact URL entered above”
Что такое $V и $Q можно почитать в Redirect Reference.
Применяем все изменения, и запускаем новый сайт. Теперь трафик автоматически переходит с http на https.
2. ISAPI REWRITE
Для IIS 6.0 существует ISAPI-расширение ISAPIREWRITE, которое позволяет создавать гибкие правила перенаправления и перезаписи URL. Подробнее о возможностях и о инсталляции модуля можно почитать тут.После установки данного расширения нужно всего навсего сделать текстовый файл httpd.ini в корневой папке вашего сайта и заполнить его следующим образом:
[ISAPI_Rewrite]
# http://www.isapirewrite.com/
# Defend your computer from some worm attacks
RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]
RepeatLimit 32
# Block external access to the httpd.ini and httpd.parse.errors files
RewriteRule /httpd(?:\.ini|\.parse\.errors).* / [F,I,O]
# redirect all http requests to https
RewriteCond %HTTPS (?!on).*
RewriteCond Host: (.*)
RewriteRule (.*) https\://$1$2 [I,RP]
3. Обработчик для HTTP статуса 403.4
Еще один интересный способ заключается в использовании обработчика статуса HTTP 403.4 - Forbidden: SSL is required to view this resource error, but the Web site is not configured to use SSL.Создаем текстовый файл RedirectToHttps.asp в папке C:\inetpub\wwwroot\customerrors\. Содержимое его ниже:
Открываем в Microsoft IIS 6.0 Manager свойства сайта, который нужно заставить работать только по HTTPS.
Вкладка “Directory Security”, кликаем по кнопке “Edit” в секции “Secure communications”. Ставим галочку “Require SSL”. Дальше, нужно открыть вкладку “Custom Errors”. Выбираем запись для ошибки 403.4 и кликаем по “Edit”.
В выпадающем списке выбираем “File”, и с помощью кнопки “Browse” выбираем наш файлик c:\inetpub\wwwroot\customerrors\RedirectToHttps.asp.
Вроде все
Новый Microsoft IIS 7.0
поддерживает те же самые способы.1. Родной способ с помощью HTTP Redirect:
Создаем сайт, который будет заниматься редиректом, и делаем для него binding на HTTP port 80.САЙТ не должен ссылаться на отдельную папку (чтобы не было коллизий с конфигурацией).В оригинальном сайте удаляем binding на 80 порт и оставляем только 443 порт.
Открываем в новом сайте опцию HTTP Redirect и настраиваем как показано на картинке ниже:
Опять же используются те же переменные $V$Q и опция “Redirect all requests to exact destination (instead of relative to destination)”.
Запускаем сайт и радуемся.
2.URLRewrite для Microsoft IIS 7.0
Скачиваем расширение для IIS 7.0 от Microsoft с названием URLRewrite и устанавливаем.Далее, в web.config вашего приложения добавляем следующие строчки:
3. Обработчик для HTTP статуса 403.4
Можно использовать тот же самый скрипт, который использовался для IIS 6.0.Ну и впридачу, обще-ASP.NET способ - реализация модуля или обработка события Application_BeginRequest.
Детали реализации модуля можно увидеть в блоге одного парня Sukesh’а.
Комментариев нет:
Отправить комментарий