web-dev-qa-db-ja.com

全ページでSSLをグローバルに強制する

今のところ私のドメインwww.example.comはHTTPSを強制するように設定されていてそれは機能します。このサイトはまた、すべてをHTTPSに正しくリンクしています。 (データベースのどこにもHTTPは発生しません)。

しかし、サブページにアクセスしている場合は、URLを再度HTTPに変更することができます(http://example.com/subpage/など)。これはHTTPSを強制しません。

私はこの規則を私の.htaccessのルートに持っています。

RewriteEngine On 
RewriteCond %{HTTP_Host} ^example.com [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://example.com/$1 [R,L]

どんな考えがこれの原因ですか?

2
Rizzah

すべてのページをグローバルにHTTPSにリダイレクトするには、次の行を.htaccessに追加します。

# Globally force SSL.
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]

これまでの書き換えがない場合は、これをRewriteEngine onの直後に配置する必要があります。

1
leymannx

このhtaccessルールを試してください

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
0
Junaid