per forzare HTTPS per una particolare cartella utilizzare
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} somefolder
RewriteRule ^(.*)$ https://www.domain.com/somefolder/$1 [R,L]
per l'intero utilizzo del sito
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
per pagine specifiche si potrebbe usare
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} ^/doctor/?.*$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L]
Verificare se la porta del server è diverso da 443 (standard per connessioni sicure), per garantire che stiamo reindirizzando solo connessioni non protette
Reindirizzare la pagina secure.php per proteggere il dominio, inviare 301 stato di risposta, aggiungere tutte le stringhe di query e il contrassegno è come ultima regola, quindi qualsiasi regola sotto di questo non viene analizzato (dal momento che questo è il reindirizzamento, non vogliamo prendere qualsiasi altra azione)
ecco una soluzione senza utilizzare .htaccess ho trovato 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']}"));
}
?>
Vedo, ma ho problemi quando voglio mostrare tutte le pagine, che non si trovano in/doctor e/client senza https. – misho
Non utilizzare la variabile SERVER_PORT, utilizzare invece HTTPS, in questo modo se la porta di ascolto cambia (o si ascolta su più porte), il reindirizzamento funziona ancora. – Kazar
@kazar: buon punto. – ayush