para forzar https para una carpeta en particular utilizar
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} somefolder
RewriteRule ^(.*)$ https://www.domain.com/somefolder/$1 [R,L]
para todo uso del sitio
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
para páginas específicas que podría utilizar
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} ^/doctor/?.*$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L]
comprobar si el puerto del servidor es diferente de 443 (estándar para conexiones seguras), para asegurar que vamos a redirigir solo conexiones no seguras
Redirige la página secure.php al dominio seguro, enviando el estado de respuesta 301, agregando todas las cadenas de consulta y marcando como última regla, por lo que cualquier regla por debajo de este no será analizada (ya que esto es redirigir, no queremos tomar cualquier otra acción)
aquí es una solución sin utilizar .htaccess he encontrado here
<?php
//assuming you site structure like www.domain.com/p=doctor
$redirectlist = array('doctor','nurse','anyother');
if (in_array($_GET['p'], $redirectlist) && strtolower($_SERVER['HTTPS']) != 'on') {
exit(header("location: https://{$_SERVER['SERVER_NAME']}{$_SERVER['REQUEST_URI']}"));
}
?>
Veo, pero tengo un problema cuando quiero mostrar todas las páginas, que no se encuentran en/doctor y/cliente sin https. – misho
No use la variable SERVER_PORT, use HTTPS, de este modo si el puerto de escucha cambia (o escucha en varios puertos), la redirección aún funciona. – Kazar
@kazar: buen punto. – ayush