ウェブサイトの.htaccessファイルを編集することは、WordPress初心者には intimidating に聞こえるかもしれません。しかし、私たちの経験では、ウェブサイトのパフォーマンス、セキュリティ、SEOを改善するために使用できるツールです。
このファイルを、コーディングの達人になる必要なく、サイトのサーバー設定を微調整するためのコントロールパネルとして考えることができます。
この記事では、WordPressのオンラインプレゼンスをより細かく制御できる、便利な.htaccessのトリックをいくつかご紹介します。

.htaccessファイルとは何か、そして編集方法は?
.htaccessファイルはApacheウェブサーバーの設定ファイルです。WordPressウェブサイトのルールをサーバーに定義できるテキストファイルです。
WordPressは、SEOフレンドリーなURL構造を生成するために.htaccessファイルを使用します。ただし、このファイルはパーマリンク設定を保存する以上のことができます。
.htaccessファイルは、WordPressサイトのルートフォルダにあります。FTPクライアントまたはcPanelファイルマネージャーを使用してウェブサイトに接続し、編集する必要があります。

.htaccess ファイルが見つからない場合は、WordPressで.htaccessファイルを見つける方法に関するガイドを参照してください。
.htaccess ファイルを編集する前に、バックアップとしてコンピューターにコピーをダウンロードしておくことが重要です。何か問題が発生した場合にそのファイルを使用できます。
とはいえ、試すことができるWordPress用の便利な.htaccessトリックをいくつか見てみましょう。
- WordPress管理画面を保護する
- WordPress 管理フォルダにパスワード保護をかける
- ディレクトリブラウジングを無効にする
- 一部のWordPressディレクトリでPHP実行を無効にする
- WordPress設定ファイルwp-config.phpを保護する
- .htaccessファイルを使用した301リダイレクトの設定
- 不審なIPアドレスをブロックする
- .htaccessを使用してWordPressでの画像ホットリンクを無効にする
- .htaccessを不正アクセスから保護する
- WordPressでのファイルアップロードサイズを増やす
- .htaccessを使用してXML-RPCファイルへのアクセスを無効にする
- WordPress での著者スキャンのブロック
1. WordPress管理エリアを保護する
.htaccess を使用して、選択した IP アドレスのみにアクセスを制限することで、WordPress の管理領域を保護できます。
このコードスニペットを .htaccess ファイルにコピーして貼り付けるだけです。
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
# whitelist Syed's IP address
allow from xx.xx.xx.xxx
# whitelist David's IP address
allow from xx.xx.xx.xxx
</LIMIT>
xxの値を自分のIPアドレスに置き換えるのを忘れないでください。インターネットにアクセスするために複数のIPアドレスを使用する場合は、それらも追加してください。
詳細な手順については、.htaccess を使用して WordPress 管理へのアクセスを制限する方法に関するガイドを参照してください。
2. WordPress管理フォルダにパスワード保護をかける

複数の場所、公共のインターネットスポットを含む場所から WordPress サイトにアクセスする場合、特定の IP アドレスへのアクセスを制限することは、あなたには機能しない可能性があります。
.htaccessファイルを使用して、WordPress管理エリアに追加のパスワード保護を追加できます。
まず、.htpasswds ファイルを生成する必要があります。このオンラインジェネレーターを使用すると、簡単に作成できます。
この.htpasswdsファイルを、公開可能なWebディレクトリまたは/public_html/フォルダの外にアップロードしてください。良いパスは次のようになります:
/home/user/.htpasswds/public_html/wp-admin/passwd/
次に、.htaccessファイルを作成し、それを/wp-admin/ディレクトリにアップロードしてから、次のコードを追加します。
AuthName "Admins Only"
AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/passwd
AuthGroupFile /dev/null
AuthType basic
require user putyourusernamehere
<Files admin-ajax.php>
Order allow,deny
Allow from all
Satisfy any
</Files>
重要: AuthUserFile のパスを .htpasswds ファイルのパスに置き換え、独自のユーザー名を追加することを忘れないでください。
詳細な手順については、WordPress管理フォルダ(wp-admin)にパスワード保護をかける方法に関するガイドをご覧ください。WordPress管理フォルダにパスワード保護をかける方法。
3. ディレクトリブラウジングを無効にする

多くのWordPressセキュリティ専門家は、ディレクトリブラウジングを無効にすることを推奨しています。ディレクトリブラウジングが有効になっていると、ハッカーはサイトのディレクトリとファイル構造を調べて脆弱なファイルを見つけることができます。
ウェブサイトでのディレクトリブラウジングを無効にするには、.htaccessファイルに次の行を追加する必要があります。
Options -Indexes
このトピックの詳細については、WordPressでディレクトリブラウジングを無効にする方法に関するガイドをご覧ください。WordPressでディレクトリブラウジングを無効にする方法。
4. 一部のWordPressディレクトリでPHP実行を無効にする
ハッカーがWordPressサイトに侵入し、バックドアをインストールすることがあります。これらのバックドアファイルは、多くの場合、WordPressのコアファイルとして偽装され、/wp-includes/ または /wp-content/uploads/ フォルダに配置されます。
WordPressのセキュリティを強化する簡単な方法として、一部のWordPressディレクトリでPHPの実行を無効にすることが挙げられます。
コンピュータ上に空の.htaccessファイルを作成し、以下のコードを貼り付ける必要があります。
<Files *.php>
deny from all
</Files>
ファイルを保存し、それを/wp-content/uploads/および/wp-includes/ディレクトリにアップロードします。
詳細については、特定のWordPressディレクトリでPHP実行を無効にする方法に関するチュートリアルをご覧ください。特定のWordPressディレクトリでPHP実行を無効にする方法。
5. WordPress設定ファイル wp-config.php を保護する
おそらく、WordPress ウェブサイトのルートディレクトリで最も重要なファイルは、wp-config.php ファイルです。WordPress データベースに関する情報と、それに接続する方法が含まれています。
wp-config.php ファイルを不正アクセスから保護するには、このコードを .htaccess ファイルに追加するだけです。
<files wp-config.php>
order allow,deny
deny from all
</files>
6. .htaccessファイルを使用した301リダイレクトの設定
301リダイレクトを使用することは、コンテンツが新しい場所に移動したことをユーザーに伝える最もSEOフレンドリーな方法です。投稿ごとに301リダイレクトを適切に管理したい場合は、WordPressでリダイレクトを設定する方法に関するガイドをご覧ください。
一方、リダイレクトをすばやく設定したい場合は、このコードを.htaccessファイルに貼り付けるだけで済みます。
Redirect 301 /oldurl/ http://www.example.com/newurl
Redirect 301 /category/television/ http://www.example.com/category/tv/
8. 不審なIPアドレスを禁止する
特定のIPアドレスからのウェブサイトへの異常に高いリクエストが表示されていますか?.htaccessファイルでIPアドレスをブロックすることで、それらのリクエストを簡単にブロックできます。
.htaccess ファイルに以下のコードを追加するだけです。
<Limit GET POST>
order allow,deny
deny from xxx.xxx.xx.x
allow from all
</Limit>
xx をブロックしたい IP アドレスに置き換えるのを忘れないでください。
14. .htaccessを使用してWordPressで画像ホットリンキングを無効にする
他のウェブサイトがあなたのサイトから直接画像をホットリンクすると、WordPressサイトが遅くなり、帯域幅の上限を超える可能性があります。これはほとんどの小規模ウェブサイトでは大きな問題ではありません。しかし、人気のあるウェブサイトや写真が多いウェブサイトを運営している場合、これは深刻な懸念事項になる可能性があります。
このコードを.htaccessファイルに追加することで、画像ホットリンクを防止できます。
#disable hotlinking of images with forbidden or custom image option
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?wpbeginner.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]
このコードは、wpbeginner.comまたはGoogle.comからリクエストが発生している場合にのみ画像を許可します。wpbeginner.comを自分のドメイン名に置き換えるのを忘れないでください。
画像を保護するその他の方法については、WordPressで画像の盗難を防ぐ方法に関するガイドをご覧ください。
9. .htaccessを不正アクセスから保護する
ご覧いただいたように、.htaccessファイルを使用すると非常に多くのことができます。ウェブサーバーに対するその強力な制御力のため、ハッカーによる不正アクセスから保護することが重要です。
.htaccess ファイルに以下のコードを追加するだけです。
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>
10. WordPressでのファイルアップロードサイズの増加
WordPressでファイルアップロードサイズの制限を増やすにはいくつかの方法があります。しかし、共有ホスティングを利用しているユーザーの場合、これらの方法のいくつかは機能しません。
多くのユーザーに効果があった方法の1つは、次のコードを .htaccess ファイルに追加することです。
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
このコードは、Webサーバーにこれらの値を使用して、WordPressでのファイルアップロードサイズと最大実行時間を増やすように指示するだけです。
11. .htaccess を使用して XML-RPC ファイルへのアクセスを無効にする
各WordPressインストールには、xmlrpc.phpというファイルが付属しています。このファイルは、サードパーティのアプリケーションがWordPressサイトに接続できるようにします。ほとんどのWordPressセキュリティ専門家は、サードパーティのアプリケーションを使用していない場合は、この機能を無効にすることを推奨しています。
それを行うには複数の方法があります。その一つは、次のコードを.htaccessファイルに追加することです。
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
詳細については、WordPressでXML-RPCを無効にする方法に関するガイドをご覧ください。WordPressでXML-RPCを無効にする方法。
12. WordPressでの著者スキャンをブロックする
ブルートフォース攻撃でよく使われる手法は、WordPress サイトで著者スキャンを実行し、それらのユーザー名のパスワードをクラックしようとすることです。
次のコードを .htaccess ファイルに追加することで、このようなスキャンをブロックできます。
# BEGIN block author scans
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (author=\d+) [NC]
RewriteRule .* - [F]
# END block author scans
詳細については、WordPressで作者のスキャンをブロックすることで、ブルートフォース攻撃を抑制する方法に関する記事をご覧ください: WordPressで作者のスキャンをブロックしてブルートフォース攻撃を抑制する方法。
この記事がWordPressの最も便利な.htaccessトリックを学ぶのに役立ったことを願っています。また、WordPressのセキュリティ監査を実行する方法に関するガイドや、最高のWordPressコンテンツ保護プラグインの専門家による選択もご覧ください。
この記事が気に入ったら、WordPressのビデオチュートリアルについては、YouTubeチャンネルを購読してください。 TwitterやFacebookでもフォローできます。

Olaf
.htaccess ファイルは、Apache の設定ファイルの一つとして、ウェブサイトの変更やセキュリティ強化に非常に役立ちます。本当に素晴らしいことができます。セキュリティの向上、URL の変更、制限の増加などです。このファイルの良い例をありがとうございます!私にとって、ホットリンク防止(以前は Cloudflare で処理していました)とディレクトリのパスワード保護(通常はプラグインで管理していました)が特に役立ちました。
デニス・ムトミ
wp-config.php のセクションは非常に役立ちました。いくつかのクライアントサイトで使用し、効果を保証できます。もう1つ追加するとすれば、変更を加える前に常に元の .htaccess ファイルをバックアップすることです。これは、サーバーの問題をトラブルシューティングする際に何度も私を救ってくれました。素晴らしいガイドです!
Dan
こんにちは、これらのコードのいずれかがGoogleアナリティクスに影響を与える可能性はありますか? 5、9、12を追加しましたが、GAはウェブサイトの訪問者情報を検出できず、プラットフォームに誰かがいるかどうかも表示されません。
WPBeginnerサポート
この記事の方法は、Google Analytics がコンテンツを追跡する能力に影響を与えるべきではありません。問題の原因は、Google Analytics をどのように追加したかによって異なります。
管理者
イジー・ヴァネック
9番目の、htaccess自体の保護について非常に興味がありました。これは、FTP以外の方法でもこのファイルにアクセスできるということですか?通常のウェブブラウザからアクセスしようとしましたが、方法が見つかりませんでした。理解したところによると、式は名前の中にhh、tt、aaを持つものへのアクセスを禁止します。これは、FTP経由以外でhtaccessを攻撃する方法があるということですか?
WPBeginnerサポート
ファイルにアクセスする方法はFTPだけではありません。これは、サイトのセキュリティのための別のツールとして、アクセス方法を制限するのに役立つ方法の1つです。
管理者
イジー・ヴァネック
理解しました。ご回答ありがとうございます。htaccessファイルのパーミッションを644に設定し、あなたのディレクティブも挿入しました。このブログ記事は、htaccessはFTPまたはWordPress管理画面からしか管理できないとずっと思っていたので、再び私の目を覚まさせてくれました。常に学び続けるものですね :)。
Simeon
これ、本当に助かります!とても参考になりました!
WPBeginnerサポート
お役に立てて嬉しいです!
管理者
ジャクソン・アンドラーデ
wp-login.php にパスワード保護を使用しています。login.php が保護されていると、顧客はログアウトできません。wp-login.php?action=logout を呼び出さずに顧客がログアウトできるようにする方法はありますか?
管理者もログアウトできませんが、これは問題ではありません。
WooCommerce の顧客のログアウト URL は、domain.com/account/customer-logout です。
どちらもログアウトのために wp-login.php を呼び出します。顧客は htaccess の ID とパスワードを求められます。回避策があれば教えてください。よろしくお願いします。
WPBeginnerサポート
サイトに管理者以外のユーザー用のログインがある場合、現時点では wp-login.php をパスワードで保護することは推奨しません。また、現時点では回避策もありません。
管理者
ジャクソン・アンドラーデ
その情報ありがとうございます。Wordpressがログアウトのためにlogin.phpにリダイレクトしない将来の機能を追加することを願っています。
HtaccessGuy
AJAXを使用する場合、wpadminのパスワード保護は行わないでください。そうしないと、問題が発生します。
WPBeginnerサポート
このリストの2番目の項目についてですが、AJAXが引き続き機能するようにコードを追加しました。
管理者
アナ
このコードで問題が解決しました。ありがとうございます。
Abhi
助けてください。
次のコードを .htaccess ファイルに貼り付けると、次のようなエラーが表示されます。
このページにアクセスする権限がないようです。
403エラー。禁止されています。
WPBeginnerサポート
403エラーを解決するには、こちらのガイドをご覧ください: https://www.wpbeginner.com/wp-tutorials/how-to-fix-the-403-forbidden-error-in-wordpress/
管理者
ベン
素晴らしい記事です!
WordFenceプラグインを既にインストールしている場合、これも行う必要がありますか?
.htaccessファイルをいじることを推奨しない人もいます。
よろしくお願いします。
WPBeginnerサポート
これらのトリックは、使用したくない場合は必要ありません。単に役立つツールとして使用できます。
管理者
セバスチャン
「.htaccessを不正アクセスから保護する」が正確に何を意味するのか分かりません。9番目の項目から変更した場合、アクセスできますか?
WPBeginnerサポート
.htaccess ファイルの場所を知っている人が、そのアドレスをURLに入力してファイルを表示しようとしても、ブラウザで表示できなくなるということです。
管理者
reus
wpログインユーザー名とパスワード(登録ユーザー)を使用して、トピック番号2(WordPress管理フォルダのパスワード保護)にアクセスする方法。
ここで答えが見つかることを願っています。
ありがとう
WPBeginnerサポート
それを使用したい場合は、htpasswdsファイルに情報を設定する必要があります。
管理者
reus
ご回答ありがとうございます。htpasswdsにその情報をどのように設定すればよいですか?ありがとうございます。
WPBeginnerサポート
We show the tool to use under tip 2 in the article
Selvakumaran Krishnan
ハイ・サイード・バルキ様
このようなクエリパラメータと文字列を持つURLを開く必要があります。
something.example.com/pagename.php?query1=string1&query2=string2&redirecturl=http%3A%2F%2Fsomething.example2.com/something&query3=string3
上記のURLでは、問題は %3A%2F%2F です。403 Forbiddenエラーが表示されます。その部分を削除すると、URLは正常に機能します。
mod_rewriteやリダイレクトなどのすべての方法を検索して試しましたが、何も機能しません。
.htaccessファイルを使用して、エンコードされた部分を削除(または)書き換える(または)リダイレクトする方法はありますか?その部分は多くのパラメータの途中にあります。その部分の前後に多くのクエリパラメータがあります。
あなたのアイデアを共有してください。
Kathrine
素晴らしい記事です!! 指示に従ったところ、すべて正常に動作しました。異なるIPアドレスを使用して管理サイトを開いてみましたが、うまく動作しました。知識を共有していただきありがとうございます。
モハメド・アデル
wp-admin ディレクトリを保護した後(2. WordPress 管理フォルダのパスワード保護で説明されているように)、サイトのどのページにアクセスしてもパスワードを入力するメッセージが表示されます。これを修正するにはどうすればよいですか?
Cpanel から試しましたが、同じ問題が発生します。
Tony
php実行を無効にするためのポイント4のヒントが、ページと投稿のtinymceエディタで問題を引き起こし始めました。tinymceフォルダには、関連するjsファイルをロードするphpファイルが含まれています。問題を停止するために、wp-includeフォルダから.htaccessコードを削除したばかりです。これには別の方法があるかもしれませんか?
Pankaj
ポイント5が機能していません
(5. WordPress設定ファイル wp-config.php を保護する)
[05-Mar-2018 08:20:03 Etc/GMT] PHP Parse error: syntax error, unexpected ‘<' in /home/—–/public_html/xyz.com/wp-config.php on line 91
WPBeginnerサポート
Pankajさん、こんにちは。
5番目のトリックのコードは、wp-config.phpファイルではなく、.htaccessファイルに貼り付ける必要があります。
管理者
マクシミリアン
こんにちは、ありがとうございます!
.htaccess全体をどこかで見ることができますか?はい、「一行ずつ追加してください」と読めましたが、まだ確信が持てません。
その場合、「# END WordPress」が最後の行になりますか、それとも上の方にありますか?
そして、「Options -Indexes」を一番最後に入れることについてはどう思いますか?
回答ありがとうございます!
WPBeginnerサポート
マキシミリアン様
#END WordPress 行の後に新しい行を追加できます。
管理者
yudi cahyadi
良い記事です。質問があります。htaccessにコードを実装した後、セキュリティプラグインをインストールする必要はありますか?
yudi cb(初心者)
WPBeginnerサポート
Yudi Cahyadiさん、こんにちは。
はい、セキュリティプラグインをインストールする必要があります。詳細については、WordPressセキュリティガイドをご覧ください。
管理者
マリオ・フォン・ゴラッツ
こんにちは、良い記事です。一括リダイレクトする方法はありますか?
Mario
Kevin
こんにちは。
素晴らしい記事です。質問が一つあります。
追加のコード(特に速度最適化)は、# BEGIN WordPress の前と後のどちらに配置すべきでしょうか?
敬具
ケビン
Brian Wohn
こんにちは、テーマ開発者から htaccess にあるかもしれないと言われましたが、WordPress がすべてのページの一番最後にこれを追加する理由がわかりません。
なぜ "/?v=8f2564d40946" が追加されるのか、何か考えはありますか?パーマリンクやスラッグなどを確認しましたが、何も見つかりませんでした。
ご協力ありがとうございます!
WPBeginnerサポート
ブライアンさん、こんにちは。
WooCommerceによって追加されたGeoLocationタグのようです。
WooCommerce を使用している場合は、無効にすることができます。WooCommerce の一般設定ページに移動し、「ページキャッシュサポートによるジオロケーション」オプションのチェックを外します。
管理者
エイドリアン・ウォーデン
WP Beginner の素晴らしい投稿です… 新米の私たち全員へのヒントが1つあります… WP Beginner には WordPress のヒントやコツがいくつかありますが、サイトの保護に関しては、共有サーバーを利用している場合は、まず「サポート」を検索してください。WP Beginner の投稿を読むことでバックエンドについて多くのことを学びましたが、実際の問題は、私はバックエンドの専門家ではなく、ほとんどの共有ホスティングにはこれらの種の修正がすでに用意されているということです…私は InMotion を利用しており、サイトのセキュリティに影響を与える多くの問題に対して、実際にはワンクリックソリューションを設定しています。CPanel から直接ファイルインデックスをオフにしました。
それでもWP BeginnerはWordPressの知識を得るために私が頼りにするところです…皆さんは素晴らしいです!
Fien
htaccessに関する素晴らしい記事ですね。しかし、これを1つのファイルに実装するにはどうすればよいですか?すべての行を順番に記述できますか?
WPBeginnerサポート
こんにちは、Fienさん、
それらを一つずつ追加できます。
管理者
リウ・チェンフォン
素晴らしいリストです。ブックマークしました!
NGINX Web サーバー(.htaccess ファイルを読み取らない)用の同じリストはありますか?
Pattye
このファイルを使って、サイトへのボットのクロールを禁止する方法があります。IPアドレスを禁止する以外に、何か提案はありますか?