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

WordPressでブログやサイトを運営する前、そして運営している時にしっかり設定しておきたいWordPressのセキュリティやメンテナンスに役立つ.htaccessの設定を紹介します。

サイトのキャプチャ

WordPress Htaccess Tips And Tricks

下記は各ポイントを意訳したものです。
※当ブログでの翻訳記事は、元サイト様に許可を得て翻訳しています。

注意
.htaccessを修正・変更する場合、必ずバックアップをすることをお勧めします。

.htaccessファイルを守る

最初に行うことは、.htaccessをあなた以外の無許可のアクセスから守ることです。下記のスニペットは第三者があなたの.htaccessファイルにアクセスするのを阻止します。

ルートの「.htaccess」に下記を記述します。

<files ~ "^.*\.(&#91;Hh&#93;&#91;Tt&#93;&#91;Aa&#93;)">
order allow,deny
deny from all
satisfy all
</files>

wp-config.phpファイルを守る

WordPressでもう一つ重要なファイルがあります、それはwp-config.phpです。このファイルには重要な設定やデータベースへのログイン情報などが含まれています。このファイルに第三者がアクセスできないようにしましょう。

ルートの「.htaccess」に下記を記述します。

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

wp-contentディレクトリを守る

wp-contentディレクトリはWordPressのWebサイトとして最も重要なエリアです。この中にはテーマやプラグインや画像・動画やキャッシュファイルなどが含まれています。

そのため、ハッカーの目標の一つとなっています。私は去年uploadsフォルダにメールスクリプトをアップロードされてしまいました。これは私のサーバーを使い、大量のスパムメールを送りました。

wp-content直下の各ディレクトリの「.htaccess」に下記を記述します。

Order deny,allow
    Deny from all
    <Files ~ ".(xml|css|jpe?g|png|gif|js)$">
    Allow from all
    </Files>

wp-content直下のthemes, plugins, uploadsなど、それぞれのディレクトリに.htaccessファイルをアップロードする必要があります。この設定はアップロードできるファイルを.xml, .css, .jpe?G, .png, .gif, .jsに限定するもので、他のファイルのアップロードはできません。

ワンポイント
.svgなどのファイルを加えたい場合は、追加してください。
例:xml|css|jpe?g|png|gif|js|svg

インクルードのみのファイルをブロックする

インクルードのみのファイルは、ユーザーがアクセスしなくてもよいファイルです。

ルートの「.htaccess」に下記を記述します。

# 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>

管理画面へのアクセスを制限する

WordPressの管理画面は、ハッカーに狙われやすい入り口の一つです。もし管理画面へのアクセスを許してしまうと、彼らはWordPressのWebサイトでどんなことでもできます。管理画面のアクセスを制限しておきましょう。

wp-adminディレクトリの「.htaccess」に下記を記述します。

# Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 12.34.56.78
</Limit>

「12.34.56.78」はあなた自身のIPアドレスに変更してください。あなたのIPが分からない時は「What is My IP」にアクセスして確認するとよいでしょう。IPアドレスは他の管理者やスタッフのために加えることができます。

allow from 12.34.56.78, 98.76.54.32, 19.82.73.64

加える時は、「,(コンマ)」で区切ります。

Webサイトから誰かを出入り禁止にする

もし悪意のあるアクセスのIPアドレスが分かったなら、下記のスニペットを使ってWebサイトから出入り禁止(バン)にすることができます。例えば、管理画面にアクセスを試みたIPアドレスなど追放してもよいでしょう。

ルートの「.htaccess」に下記を記述します。

<Limit GET POST>
order allow,deny
deny from 123.456.78.9
deny from 987.654.32.1
allow from all
</Limit>

「123.456.78.9」「987.654.32.1」は出入り禁止にするIPアドレスに変更してください。

メンテナンスページをビジターに表示する

WordPressにはメンテナンス用の便利なプラグインがあります、「Ultimate Maintenance Mode」「Maintenance」など。これらはWordPressが正常に動作している時のみ動作するもので、トップページが真っ白になっているなどホワイトスクリーンに直面した際の解決にはなりません。

WordPressになんならかの障害がおき、メンテナンスページを表示する際は、メンテナンスページのHTMLを用意し、下記のスニペットを使用してください。

ルートの「.htaccess」に下記を記述します。

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /maintenance.html [R=302,L]

2, 4行目の「maintenance.html」はメンテナンスページに変更してください。
3行目にはあなたのIPアドレスを加え、メンテナンス中でもあなたがアクセスできるように設定します。

ディレクトの一覧表示を停止する

ディレクトリ内のファイルやフォルダを見せることはセキュリティ上、危険です。ディレクトリの一覧表示を停止させておきましょう。

ルートの「.htaccess」に下記を記述します。

# disable directory browsing
Options All -Indexes

ブラウザのキャッシュを利用する

ブラウザのキャッシュを利用するのは、「Optimize Your WordPress Website Using These Simple Tips」でも説明した通り、WordPressを最適化する一つの方法です。

CSSファイルやJSファイル、ロゴや画像など、一度ロードされたファイルをユーザーのブラウザにキャッシュさせ、次回以降はそのキャッシュを利用するので、ページ表示が速くなります。・

ルートの「.htaccess」に下記を記述します。

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>
## EXPIRES CACHING ##

画像系は1年、CSSやJSファイルは1ヵ月でキャッシュの期間を設定しています。

URLのリダイレクト

301リダイレクトは、あなたがURLを新しい場所にしたことを検索エンジンに知らせます。ドメインを変え新しいWebサイトにした際など、URLを変更した時にそのページやフォルダを完全に新しいサイトに向け直します。

ルートの「.htaccess」に下記を記述します。

Redirect 301 /oldpage.html http://www.yourwebsite.com/newpage.html
Redirect 301 /oldfolder/page2.html /folder3/page7.html
Redirect 301 / http://www.mynewwebsite.com/

URLをリダイレクトするためには、301の後に元のURL、スペースの後に新しいURLを指定します。

画像の無断使用を防御

画像などのファイルの無断リンクを防御し、無断使用しているサイトに帯域を占有されるのを防ぎます。

ルートの「.htaccess」に下記を記述します。

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourotherwebsite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://i.imgur.com/g7ptdBB.png [NC,R,L]

3, 4行目のURLはあなたのWebサイトに変更してください。
5行目には画像を指定していますが、他に必要なファイルがあれば拡張子を加えてください。
5行目の代わりに表示する画像はあなた用に変更してください。

※この設定を行うと、RSSリーダーでフィードを表示した際に問題が起きることがあるので注意してください。

さらに詳細な情報は、以前の記事を参考に。

top of page

©2016 coliss