Web サイト全体で SSL を有効にする必要はありません。.htaccess を使用して特定のページに対して有効にすることができます
これを試して
mod_rewrite と regex に少し慣れている場合は、これらのルールを問題なく読むことができるはずです。特定のルールが何をするかを説明するコメントが表示されます。残り -- 正規表現の基本:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
# force https for /login.php and /register.php
RewriteCond %{HTTPS} =off
RewriteRule ^(login|register)\.php$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# don't do anything for images/css/js (leave protocol as is)
RewriteRule \.(gif|jpe?g|png|css|js)$ - [NC,L]
# force http for all other URLs
RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !^/(login|register)\.php$
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
これらのルールは、他の書き換えルール (存在する場合) の前に、Web サイトのルート フォルダーの .htaccess に配置する必要があります。他の場所に配置する場合は、微調整が必要になる場合があります。
/login.php と /register.php には HTTPS を強制し、画像、css スタイル、JavaScript ファイル (正確には、これらの拡張子を持つファイル) には何もせず、他のすべての URL には HTTP を強制します。
そのリストに他の URL を簡単に追加できます。リストに追加のファイル名を追加して既存のルールを編集するだけです (2 か所に同じテキスト: 1) 強制的に 2) 除外)
ファイル名は大文字と小文字が区別されます。したがって、/LOGIN.php が要求された場合、これらのルールは機能しません (Linux は大文字と小文字を区別する OS であるため、Apache もそれを提供しません.. したがって、ここであまり心配する必要はありません)。
明らかなこと: mod_rewrite を有効にする必要があり、.htaccess ファイルを Apache で処理する必要があります (一部の Web サイト ホスティング会社は、パフォーマンスとセキュリティ上の理由からそれらを無効にしています)。