Принудительное использование SSL (HTTPS) с помощью .htaccess

Блог им. Netgl /
Иногда на практике разработки веб-сайтов, возникает необходимость принудительно заставить пользователя использовать шифрованное SSL (HTTPS) соединение. В данной статье мы рассмотрим пример принудительного использования SLL (HTTPS) с помощью .htaccess.

Немного вступления.

SSL (англ. Secure Sockets Layer — уровень защищённых сокетов) — криптографический протокол, который обеспечивает установление безопасного соединения между клиентом и сервером.
Протокол обеспечивает конфиденциальность обмена данными между клиентом и сервером, использующими TCP/IP, причём для шифрования используется асимметричный алгоритм с открытым ключом.

.htaccess (от. англ. hypertextaccess) — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах (папках), таких как управляемый доступ к каталогам, переназначение типов файлов и т.д., без изменения главного конфигурационного файла.

Постановка задачи.

Давайте предположим, что у нас имеется корневая папка веб-сайта под названием /lab. Т.е. на локальном сервере наш сайт будет открываться по адресу:
http://localhost/lab/
Так же в нашей директории сайта имеется поддиректория под названием /sec
http://localhost/lab/sec/
Наша задача сделать так, чтобы при попытке доступа к данной директории происходила автоматическая переадресация с использованием защищенного SSL (HTTPS) соединения.

Решение задачи.

Создадим файл .htaccess, и поместим его в директорию, для которой необходима автоматическая переадресация с использованием защищенного SSL (HTTPS) соединения, в нашем случае это папка /sec. Затем впишем в файл .htaccess следущие строки:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}


Сохраняем внесенные нами строки, (Ctrl+S).

Для наглядности проверки создадим файл index.php и поместим в ту же директорию, где находится файл .htaccess ( /lab/sec/ ). Впишем чтонибудь для вывода, например:



Результат.

Итак, проверим результат, открываем браузер и набираем в адресной строке URL:
http://localhost/lab/sec
В окне браузера появилось окно, говорящее о том, что сервер запрашивает подтверждение на соединение по SLL (HTTPS) протоколу.



Нажимаем кнопку «Принять», и получаем содержимое нашей страницы index.php.


Обратим внимание на адресную строку браузера, запись https:// говорит о том что мы получили доступ к ресурсу по протоколу SLL (HTTPS). Теперь, для папки /sec и всех ее подпапок, в которой находится файл .htaccess с таким содержимым будет производиться автоматическая переадресация с использованием защищенного SSL (HTTPS) соединения.
С уважением magibagi.kz.

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.