env=HTTPS
を使用してヘッダーが設定されている場合、これを困難にするApache 2.2の奇妙なバグ(Apache 2.2.15に見られる)に注意してください。なんらかの理由で、env=HTTPS
は、リダイレクト中にRewriteCond %{HTTPS}
を使用してリダイレクトを制御しても起動できません。したがって、HTTP厳密トランスポートセキュリティ(HSTS)を有効にする私の設定では、と同じ値を持ち、env=X_HTTPS
が評価されたときにnullに設定されないX_HTTPS
という環境変数を作成するためにRewriteRuleを使用します。
SetEnv HSTS "max-age=31536000; includeSubDomains; preload"
# For some reason in Apache 2.2, HTTPS env variable is not available during redirects
RewriteCond %{HTTPS} on
RewriteRule ^.*$ - [ENV=X_HTTPS:%{HTTPS}]
# Set HSTS Header if the page is delivered via SSL
Header always set Strict-Transport-Security %{HSTS}e env=X_HTTPS
# Redirect SSL-only non-www page to www and quit
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*)$ https://www.%{SERVER_NAME}%{REQUEST_URI} [R=303,L]
# Redirect ANY non-SSL page to SSL
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=303,L]
Apacheの設定ですか?どのプログラミング言語からですか? –