最近、ある読者から、WordPressが.htaccessファイル内のカスタムコードを上書きするのを防ぐことは可能か、という質問を受けました。WordPressや様々なプラグインがこの設定ファイルに独自の設定を追加することがよくあるため、これは一般的な懸念事項です。
.htaccessにカスタムコードを追加した場合、上書きされたり削除されたりすることを心配するのは無理もありません。このコードを安全に保つことで、サイトのパフォーマンスやセキュリティの低下を防ぐことができます。
この投稿では、WordPressが.htaccessファイルを上書きしないようにする手順をご案内します。これらの手順に従うことで、カスタマイザーのコードを保護し、干渉されることなくサイトをスムーズに運営することができます。
WordPressはなぜ.htaccessファイルを上書きするのか?
.htaccessファイルは、WordPress サイトに関する重要な設定を保存する強力な設定ファイルです。.htaccessファイルには、ホスティングサービスサーバーにサイトの処理方法を指示するルールが含まれています。
WordPressは.htaccessファイルにパーマリンクの設定を保存します。パーマリンクを変更または再生成するたびに、WordPressは自動的に.htaccessの古い設定を新しい設定で上書きします。
WordPressプラグインの中には、.htaccessに設定を保存するものもあります。例えば、W3 Total Cacheプラグインは、プラグインの一部であるキャッシュと最適化ツールを設定するために、.htaccessファイルを変更します。
最後に、.htacessにカスタマイザー独自の変更を加えることで、サイトの動作をコントロールすることができます。例えば、管理エリアの保護、ハッカーからのサイトの保護、リダイレクトの設定、不審なIPアドレスの禁止など、カスタムルールをファイルに追加することができます。
ユーザーによっては、.htaccessに独自のカスタムルールを追加した場合、WordPressが新しい設定でファイルを上書きする際に、そのルールが削除されてしまうのではないかと心配する人もいます。他のユーザーは、.htaccessを手動で設定し、WordPressにすべて書き込ませないことを好みます。
それでは、WordPressが.htaccessファイルを上書きしないようにする方法を見ていきましょう。以下のクイックリンクから、興味のあるセクションにジャンプしてください:
WordPressが.htaccessのルールを上書きしないようにする方法
.htaccessファイルの仕組みを理解していれば、カスタマイザーが上書きされることはありません。
それは、WordPressやプラグインによって変更されるファイルのエリアが明確にマークされているからです。そのエリアにコードを追加しないように注意してください。
WordPressマーカー内のコードを変更しない
先に述べたように、WordPressは.htaccessを使ってSEOに適したURL構造の設定を保存します。このファイルに保存されたコードは、パーマリンクの設定を変更するたびに自動的に上書き更新されます。
下のスクリーンショットにあるように、WordPressはこの情報を2つのマーカー、# BEGIN WordPressと
# END WordPressの
間に保存する。
これらのマーカーの中にある警告に注目してほしい:
BEGIN WordPress “と “END WordPress “の間のディレクティブ(行)は動的に生成され、WordPressフィルターによってのみ変更されます。この間のディレクティブは上書きされます。
これは、WordPressがこれらのマーカーの外側に追加したコードを上書きしたり修正したりしないことを意味します。ユーザーは通常、カスタムコードをファイルの先頭、# BEGIN WordPress
マーカーの上に追加します。
ヒント:.htaccess は WordPress サイトのルートフォルダーにある非表示ファイルです。.htaccessが見つからない場合は、WordPressサイトの.htaccessファイルが見つからない理由をご覧ください。
プラグインのマーカー内のコードを修正しない
プラグインがその設定を.htaccessに保存するとき、# BEGIN Pluginと
# END Pluginの
ようなマーカーの間にも置かれます。
例えば、サイトのスピードとパフォーマンスを向上させるためにW3 Total Cacheプラグインをインストールしてセットアップすると、.htaccessに# BEGIN W3TC Browser Cacheと
# END W3TC Browser Cache
マーカーの間にルールが追加されます。
これらのルールはプラグインの設定を変更するたびに上書きされるので、これらのマーカーの間にカスタマイザーの.htaccessルールを追加しないように注意する必要があります。
カスタムコード用のマーカーを作成する
まれに、行儀の悪いプラグインが# BEGIN
と# END
マーカーの外側のコードを変更することがあります。しかし通常、WordPressや他のプラグインが使っているマーカーの間にあるコードを変更することはありません。
お行儀の悪いプラグインがあなたのコードを上書きするのが心配なら、.htaccessファイルに独自のマーカーを追加することができます。
例えば、.htaccessファイルの先頭に# BEGIN MyCustomCodeと
# END MyCustomCodeの
マーカーを打ち、その間に独自のカスタムルールを追加することができます。
.htaccessの最後にもコードを追加する必要がある場合は、そこに別のマーカーを追加することができます。本当に〜してもよいですか?例えば、「MyCustomCodeTop」と「MyCustomCodeBottom」を使うことができます。
WordPressが.htaccessを変更しないようにする方法
.htaccessがどのように機能するかを理解したことで、カスタマイザーコードがWordPressやプラグインによって上書きされることはありません。
しかし、開発者や上級ユーザーの中には、WordPressが.htaccessに変更を加えるのを止めたいと考える人もいる。
例えば、.htaccessに手動で設定を入力してパーマリンクを作成したい場合があります。この場合、WordPressが自身のパーマリンク設定をファイルに保存しないようにすることで、競合を避けたいでしょう。
予期せぬ結果を招く可能性があるため、自分が何をしているのかわかっていない限り、この方法はお勧めしません。しかし、ファイルの権限を変更したり、コードを使用したりすることで可能です。
WordPressがファイル権限を使って.htaccessを変更するのを止める
WordPressが.htaccessを変更できないようにする1つの方法は、ファイルを読み取り専用にすることです。これを行うには、FTPクライアントまたはWordPressホスティングサービスが提供するファイルマネージャを使用して、ファイルの権限を変更する必要があります。
.htaccessファイルは、WordPressインストーラのルート・ディレクトリにあります。次に、ファイルを右クリックし、「ファイルの権限」を選択します。
ファイルの属性を変更できるポップアップが表示されます。
初期設定は644ですが、「数値」フィールドに直接入力するか、「読み取り」ボックスのみにチェックが入っていることを確認して、444に変更することができます。
OK」ボタンをクリックすると、ファイルは読み取り専用となり、変更できなくなります。
もちろん、これはファイルへの書き込みもできないことを意味する。変更を加えたい場合は、一時的にファイルの権限を644に戻す必要があります。
WordPressによる.htaccessの変更をコードで止める
もう一つの解決策は、WordPressに.htaccessファイルに書き込まないことを知らせるコード・スニペットを使うことです。これは、プラグインをブロックすることなくWordPressによる.htaccessの変更を止めたい場合に便利です。
注意:WordPressのコアファイルの編集は危険です。小さなミスでも、サイトに大きなエラーを引き起こす可能性があります。そのため、この方法は上級ユーザーのみにお勧めします。
以下のコード・スニペットをwp-config.phpファイルの末尾に追加するだけです。WordPressのwp-config.phpファイルを編集する方法については、こちらをご覧ください:
add_filter('got_rewrite', '__return_false');
これを行うと、WordPressは.htaccessファイルに書き込まなくなります。
WordPressが.htaccessを変更できないときに表示されるエラーメッセージ
.htaccessが読み取り専用になっているときにパーマリンクの設定を変更しようとすると、エラーメッセージが表示されます。
設定 ” パーマリンクのページの一番上に、’You should update your .htaccess file now’というメッセージが表示されます。
これは、WordPressが.htaccessファイルを変更できなかったことを知らせます。
通常、これはあなたが意図したものです。しかし、WordPressのパーマリンク設定を.htaccessに追加したい場合は、手動で行う必要があります。
設定“パーマリンクのページの一番下に、.htaccessファイルが書き込み可能ではないというエラーメッセージが表示されます。その下に、.htaccessに追加する必要があるルールが表示されます。
これらの設定を追加したい場合は、.htaccessファイルの権限を一時的に644に戻し、編集できるようにする必要があります。その後、ファイルのWordPress BEGINマーカーとENDマーカーの間に、すでにあるコードを置き換える形でルールを貼り付けてください。
終了したら、値を444に戻し、ファイルを保存するだけです。ファイルは再び書き込み不可能になります。
WordPressの.htaccessに関するエキスパートガイド
このチュートリアルで、WordPressが.htaccessファイルを上書きしないようにする方法をご理解いただけたと思います。.htaccessファイルに関連する他のガイドもご覧ください:
- 用語集:.htaccess
- WordPressの.htaccessファイルを修正する方法(初心者ガイド)
- WordPressで最も役立つ.htaccessのトリック
- WordPressサイトで.htaccessファイルが見つからない理由
- WordPressでHTTPセキュリティ・ヘッダを追加する方法(初心者ガイド)
- WordPressでExpiresヘッダーを追加する方法
- 初心者のためのWordPressトラブルシューティング(ステップバイステップ)
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Jiří Vaněk
This was one of the first articles on WPBeginner when I deliberately searched for why a customer’s .htaccess was being overwritten. Now we know it, understand it, and also write .htaccess correctly. Many thanks for understanding the reason.
WPBeginner Support
Glad our guide could help!
管理者