.htaccess のスニペット集

このページは、.htaccess のスニペットをまとめたページです。

目次

注意

  • コードのライセンスは CC0 (クレジット表示不要、改変可、商用可) です。

セキュリティ関連ヘッダの追加

※ Apache に mod_headers モジュールが導入されている必要があります。

# フレームでの読み込みを同じサイト(同じオリジン)のみに制限
Header set X-Frame-Options SAMEORIGIN
# ブラウザにContent-Typeの推測をさせない
Header set X-Content-Type-Options nosniff
# XSSフィルタ
Header set X-XSS-Protection "1; mode=block"

キャッシュを有効化する

※ Apache に mod_expires モジュールが導入されている必要があります。

# ブラウザキャッシュの設定 (1週間)
ExpiresActive On
ExpiresDefault "access plus 1 week"
  • ファイル (MIMEタイプ) ごとに設定したい場合は ExpiresByType text/html "access plus 1 week" などで設定ができます。

キャッシュを無効化する

※ Apache に mod_headers モジュールが導入されている必要があります。

Header set Cache-Control no-store

.css, .js のみキャッシュを無効化

<Files ~ "\.(css|js)$">
Header set Cache-Control no-store
</Files>

gzip圧縮

※ Apache に mod_deflate モジュールが導入されている必要があります。

# gzip圧縮の設定
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary
  • 画像以外のすべてのファイルを圧縮します。(mod_deflate の設定の例から古い設定を除いたものです)

アクセス制限

.htaccess, .htpasswd のアクセス制限

<Files ~ "^\.(htaccess|htpasswd)$">
Deny from all
</Files>

Basic認証

/path/to/.htpasswd の箇所は実際の .htpasswd の場所を指定してください。

AuthUserFile /path/to/.htpasswd
AuthGroupFile /dev/null
AuthName "Basic Auth"
AuthType Basic
Require valid-user

wp-login.php のみBasic認証

<Files wp-login.php>
AuthUserFile /path/to/.htpasswd
AuthGroupFile /dev/null
AuthName "Basic Auth"
AuthType Basic
Require valid-user
</Files>

URLの調整

※ Apache に mod_rewrite モジュールが導入されている必要があります。

www なしの URL を www 付きに変更する

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?!www).
RewriteRule . http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

www 付きの URL を www なしに変更する

example.com の部分は実際に使用するドメインに変更してください。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule . http://example.com%{REQUEST_URI} [R=301,L]

http の URL を https に変更する

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]