У меня есть 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]
Некоторое объяснение:
Если у вас есть возможность следовать методу php, я бы рекомендовал следовать этому или с любыми другими динамическими языками. Вы должны избегать использования htaccess, поскольку ссылки на изображения, js и другие контакты на этой странице будут вынуждены быть nonSSL, а современные браузеры будут показывать знак несоответствия, который может выглядеть белой по стоимости SSL.