Napisałem prostą aplikację internetową z logowaniem, po udanym logowaniu jesteśmy przekierowani do strony z formularzem kontaktowym, także nic skomplikowanego. Aplikację testuję na XAMPP. Projekt składa się z kilku plików: form.php, login.php, logout.php oraz chroniona_strona.php w folderze htdocs\Aplikacja1.
Jak wymusić, aby ze stroną login.php połączenie było szyfrowane? Utworzyłem w pliku .htaccess:
RewriteCond %{HTTPS} on
RewriteRule ^/(^[login|form]) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} \.(gif|png|jpg|css|js)$
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
Plik ten znajduje się w htdocs i htdocs\Aplikacja1 , jednak nie działa wymuszenie bezpiecznego połączenia. Jakieś pomysły, sugestie? W tej kwestii jestem kompletnym laikiem (.htaccess i SSL).
To, że wystarczy zrobić redirect permanent i nie trzeba mieć htaccess i serwer może działać wydajniej. Właśnie z tego ostatniego powodu zaleca sie korzystanie z redirect na VHoscie zamiast w htaccess.
Jeśli z htaccess nie działa, sprawdź czy masz włączony mod_rewrite.
RewriteCond %{HTTPS} on
Ustawiasz na off lub na !=on. Ta linijka sprawdza czy masz połączenie https, jeśli nie, przekierowuje z http na https zgodnie z ustawioną regułą.