httpsとgzipの徹底

当サイト(westantenna.com)は、数ヶ月前にSSL証明書に対応してhttpsでの接続とし、サーバー側でのファイルのキャッシュやgzipで圧縮したうえでの送信をしていました。一方、wiki.westantenna.com(まちトドンwiki)やtile.westantenna.com(地図データの置いてあるドメイン)は、httpsでの接続はできるようにしたものの依然としてhttpでも接続でき、データを圧縮しないで送信していました。

それを、httpで接続した場合は強制的にhttpsに転送するようにし、gzipで圧縮の上送信するように設定を変更しました。

備忘録的に.htaccessファイルの記述を書いておきます。

当サイトがあるのはさくらのレンタルサーバーです。他のサーバーでは異なる場合があります。

httpsへの転送

# RewriteしてもHTTPS環境変数を有効にする
SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1
# 常時HTTPS化(HTTPSが無効な場合リダイレクト)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{ENV:HTTPS} !on
RewriteCond %{REQUEST_URI} !/wp-cron\.php$
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

gzipの有効化

# mod_deflate を有効にする
SetOutputFilter DEFLATE
# Accept-Encoding を無視して強制的に gzip を返す
SetEnv force-gzip
# 画像ファイルはgzip圧縮を行わない
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary