
こんにちは。「クロジカサーバー管理」コンサルティングチームの西原です。
「.htaccess」ファイルは、ページやファイルへのアクセスを制御するWebサーバー用の設定ファイルです。WordPressでもパーマリンク設定に使われる重要なファイルで、内容も複雑なコマンドで書かれているので初心者の方には取り扱いが難しく感じられそうですが、特定の内容を書き加えるだけでWordPressのセキュリティを向上できるため、WordPressを立ち上げたら最初に実施したい内容を紹介します。
WordPressの.htaccessを編集するうえでの注意
WordPressをインストールした直後の.htaccessは以下のようになっています。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^index\.rdf$ /feed/rdf/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule >
# END WordPress
# BEGIN WordPress
から# END WordPress
に挟まれた範囲はWordPressのための設定で、WordPressで設定を変更すると書き換えられるため、よく分からないうちは# BEGIN WordPress
より上に書き加えるようにします。
.htaccessの保護
.htaccess自体が不正アクセスされては他の設定も無意味になってしまうので.htaccessファイルへのアクセスをすべて拒絶します。
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
ディレクトリ表示の禁止
ブラウザでディレクトリにアクセスされた時にファイル一覧が見れる状態は攻撃の手がかりになってしまうため、表示されないようにします。
Options -Indexes
ログイン管理画面(wp-login.php)のアクセス制限
ログイン画面への攻撃を防ぐため、関係者以外はログイン画面にアクセスできないようにします。IP制限かベーシック認証を使うパターンがあります。
IP制限
会社で固定IPを持っている場合はIP制限をします。
<Files wp-login.php>
Order deny,allow
Deny from all
Allow from 00.00.00.00
</Files>
Allow from
にはIPを記入してください。
ベーシック認証
固定IPを持っていない、また外部関係者がアクセスする場合はベーシック認証をかけます。
まずベーシック認証用に暗号化されたユーザーIDとパスワードを記した「.htpasswd」ファイルが必要です。以下のサイトで簡単に作ることができます。
<Files wp-login.php>
AuthName "Please enter your ID and password"
AuthType Basic
AuthUserFile /home/www/***/.htpasswd
Require valid-user
</Files>
AuthUserFile
にはアップした.htpasswdのサーバーパスを記入してください。
管理者画面(wp-admin)のアクセス制限
wp-adminディレクトリ以下はログインユーザー以外は不要なため、一切のアクセスを禁止します。wp-adminディレクトリ内に.htaccessを新規作成しアクセス制限をかけます。
Order deny,allow
Deny from all
Allow from 00.00.00.00
Allow from
にはIPを記入してください。
攻撃されやすいファイルのアクセス制限
- wp-config.php:WordPressの動作に必要な設定ファイル
- wp-cron.php:予約投稿やアップデート通知など時刻連動の処理に使われるファイル
<FilesMatch "^(wp-config\.php|wp-cron\.php)">
order allow,deny
deny from all
</FilesMatch>
- xmlrpc.php:特定のホストへpinbackを送るファイル
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^xmlrpc\.php$ "http\:\/\/0\.0\.0\.0\/" [R=301,L]
</IfModule>
xmlrpc.phpへのアクセスは0.0.0.0へリダイレクトして負荷を避けるノウハウが一般化されています。なおxmlrpc.phpは有名プラグイン「Jetpack」で使われているため、もし使っている場合は以下の対応も検討してください。
さいごに
.htaccessで制御できるWordPressのセキュリティ対策はおよそ以上となります。定番の形さえ掴んでしまえばあとはほぼコピペで流用できます。本稿が.htaccessの編集にお役立てば幸いです。
コーポレートサイトをクラウドでセキュアに

無料ではじめるサーバー管理
クロジカガイドブック
- コーポレートサイト構築・運用の課題を解決
- クロジカサーバー管理の主な機能
- 導入事例
- 導入までの流れ