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のまとめ