WordPressでやっておきたい .htaccess の設定

セキュリティ対策
WordPressカテゴリー

WordPressインストール後に .htaccess を適切に設定すれは、サイトのパフォーマンス向上や一部セキュリティ対策にもなります。

今回はWordPressでやっておきたい .htaccess の設定内容をご紹介します。

もくじ

注意事項

※ .htaccess の編集は必ずバックアップを取ってから行ってください。
  →サイトが表示されなくなった!など問題が起きたらすぐに戻せるように準備しておきましょう。

※ お使いのレンタルサーバによっては設定が効かない項目もあります。ご了承ください。

※ .htaccess を編集する自信のない方、レンタルサーバの仕様で編集ができない方は、代替できるプラグインも多数ありますので、そちらで対応してみてください。

パフォーマンス向上編

サイトの読み込み時間を短くするために次の2点を設定します。

1・読み込むファイルの圧縮設定(ファイルサイズの縮小)

下記を追記すると、サーバーからユーザーへ向けてコンテンツを出力するときに、該当する拡張子のファイルが圧縮(gzip)されます。ブラウザが読み込むファイルサイズを小さくすることができますので、表示時間の短縮になります。

#==== 特定のファイルを圧縮する
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/js
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>

gifやjpgなどの画像はすでに圧縮されているので再圧縮させても効果はさほど見込めず、かえってサーバの負荷となってしまうので記述は見送っています。

2・ブラウザへのキャッシュ設定

下記を記述することでユーザーのブラウザでキャッシュを有効にします。
更新されていないキャッシュ期限内のデータは、ブラウザキャッシュが表示されますので、かなりの転送データが削減されます。

#==== ブラウザへのキャッシュの設定
<IfModule mod_expires.c>
 ExpiresActive On
 
 # キャッシュの初期化(1秒に設定)
 ExpiresDefault "access plus 1 seconds"
 
 # MIME Type ごとのキャッシュ設定
 ExpiresByType text/css "access plus 1 hours"
 ExpiresByType text/js "access plus 1 weeks"
 ExpiresByType text/javascript "access plus 1 weeks"
 ExpiresByType image/gif "access plus 1 weeks"
 ExpiresByType image/jpeg "access plus 1 weeks"
 ExpiresByType image/png "access plus 1 weeks"
 ExpiresByType image/svg+xml "access plus 1 year"
 ExpiresByType application/pdf "access plus 1 weeks"
 ExpiresByType application/javascript "access plus 1 weeks"
 ExpiresByType application/x-javascript "access plus 1 weeks"
 ExpiresByType application/x-shockwave-flash "access plus 1 weeks"
 ExpiresByType application/x-font-ttf "access plus 1 year"
 ExpiresByType application/x-font-woff "access plus 1 year"
 ExpiresByType application/x-font-opentype "access plus 1 year"
 ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
</IfModule>

FileETag none

サイトの運営状況によって、キャッシュの設定時間は変更してください。

セキュリティ対策編

サイトのセキュリティ対策として下記を設定します。

1・htacsess へのアクセスを禁止する

下記を記述することで、第三者が.htaccessや.htpasswd ファイルにアクセスできないようにします。

# ==== protect .htaccess や .htpasswd 
<Files ~ "^\.ht">
 Order allow,deny
 Deny from all
 Satisfy All
</Files>

2・wp-config.php へのアクセスを禁止する

下記を記述することで、第三者が wp-config.php ファイルにアクセスできないようにします。

# ==== protect wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>

 

3・wp-includes を安全にする

ユーザーがアクセスされることを想定されていないインクルードファイルを安全にします。
※これはWordPress Codex  「wp-includes を安全にするで公開されています。

#==== Block the include-only files.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

4・ディレクトの一覧表示を停止

もしimagesフォルダなど、indexファイルがないフォルダへアクセスした際にファイル一覧が表示されないようにします。

Options All -Indexes

※レンタルサーバの初期設定などですでに表示されない方は必要ありません。

 

 

こちらが参考になりました。
XREAでWordPressの表示速度を改善する方法 まとめ

WordPressサイト用の.htaccess例

.htaccessをWordPressで徹底活用

WordPressでしっかり設定しておきたいセキュリティやメンテナンスに役立つ.htaccessのまとめ