HTTPS только на определенной странице с .htaccess

У меня есть URL-адрес, например http://www.domain.com/index.php?p=register . Я хочу перенаправить это использование HTTPS (SSL) с .htaccess, но только на это, и на пару других страниц (страница входа и т. Д.), Но не на весь сайт. URL-адреса не указывают на каталоги, но используются для динамического включения разных файлов.

Может ли кто-нибудь дать мне указатель или пример того, как получить переадресацию одной страницы на HTTPS, пожалуйста?

Благодарю.

Не htaccess, но другим способом может быть использование PHP для перенаправления:

 <?php $redirectlist = array('register','login','myaccount'); if (in_array($_GET['p'], $redirectlist) && strtolower($_SERVER['HTTPS']) != 'on') { exit(header("location: https://{$_SERVER['SERVER_NAME']}{$_SERVER['REQUEST_URI']}")); } ?> 

Единственная причина, по которой я упоминаю об этом, это то, что в некоторых случаях это может быть проще поддерживать, чем отдельный htaccess. Вам нужно будет добавить это в свой PHP-контент до того, как будет выведен какой-либо текст (см. Header () ).

что-то вроде этого должно работать:

 RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{QUERY_STRING} (^|&)p=(register|login|or|other|protected|page)($|&) RewriteRule (.*) https://www.domain.com/index.php [R=301,QSA,L] 

Некоторое объяснение:

  1. Проверьте, отличается ли порт сервера от 443 (стандарт для безопасных подключений), чтобы мы перенаправляли только незащищенные соединения
  2. Строка запроса (все после?) Должна соответствовать шаблону: включить переменную p с одним значением из списка, разделенного трубой
  3. Переадресовывайте все в безопасный домен, отправляя 301 статус ответа, добавляя всю строку запроса и маркировку как последнее правило, поэтому любые правила ниже этого не будут анализироваться (поскольку это перенаправление, мы не хотим предпринимать никаких других действий)

Если у вас есть возможность следовать методу php, я бы рекомендовал следовать этому или с любыми другими динамическими языками. Вы должны избегать использования htaccess, поскольку ссылки на изображения, js и другие контакты на этой странице будут вынуждены быть nonSSL, а современные браузеры будут показывать знак несоответствия, который может выглядеть белой по стоимости SSL.