最近、読者の一人から、WordPressがカスタムコードを.htaccessファイルで上書きするのを防ぐことができるかどうか尋ねられました。これは一般的な懸念事項です。なぜなら、WordPressやさまざまなプラグインがこの設定ファイルに独自の Сеттингを追加することがよくあるからです。
.htaccess にカスタムコードを追加した場合、それが上書きされたり削除されたりすることを心配するのは当然です。このコードを安全に保つことで、サイトのパフォーマンスとセキュリティの中断を防ぐことができます。
この記事では、WordPressが.htaccessファイルを上書きするのを停止する手順を説明します。これらの指示に従うことで、カスタムコードを保護し、ウェブサイトが干渉なしにスムーズに実行されることを保証できます。

WordPressが.htaccessファイルを上書きするのはなぜですか?
あなたの .htaccess ファイルは、あなたの WordPressウェブサイト に関する重要な設定を保存する強力な設定ファイルです。これは、ホスティングサーバーにサイトの処理方法を指示するルールを含んでいます。
WordPressはパーマリンク設定を保存するために.htaccessファイルを使用します。パーマリンクを変更または 再生成 するたびに、WordPressは自動的に.htaccessの古い設定を新しい設定で上書きします。
一部のWordPressプラグインは、.htaccessに設定を保存することもあります。例えば、W3 Total Cache プラグインは、プラグインに含まれるキャッシュおよび最適化ツールを設定するために、.htaccessファイルを変更します。
最後に、ウェブサイトの動作を制御するために、独自のカスタム変更を.htaccessに加えることができます。例えば、管理エリアを保護したり、サイトをハッカーから安全に保ったり、リダイレクトを設定したり、不審なIPアドレスをブロックしたりするなど、ファイルにカスタムルールを追加できます。
一部のユーザーは、.htaccess にカスタムルールを追加すると、WordPress が新しい設定でファイルを上書きしたときに削除されるのではないかと心配しています。他のユーザーは、.htaccess を手動で設定し、WordPress がそれに書き込まないようにすることを好みます。
それを踏まえた上で、WordPress が .htaccess ファイルを上書きしないようにする方法を見ていきましょう。興味のあるセクションにジャンプするには、以下のクイックリンクを使用してください。
- WordPressが.htaccessルールを上書きするのを停止する方法
- WordPressが.htaccessの変更を停止する方法
- WordPress の .htaccess に関するエキスパートガイド
WordPressが.htaccessルールを上書きするのを停止する方法
.htaccess ファイルの仕組みを理解していれば、カスタムルールが上書きされないと確信できるというのが良いニュースです。
これは、WordPress やプラグインによって変更されるファイルの部分が明確にマークされているためです。これらの領域にコードを追加しないようにしてください。
WordPress マーカー内のコードを変更しないでください
前述したように、WordPressはSEOに最適なURL構造の設定を保存するために.htaccessを使用します。ファイルに保存されたコードは、パーマリンク設定を変更するたびに自動的に上書きおよび更新されます。
下のスクリーンショットで見られるように、WordPress はこの情報を # BEGIN WordPress と # END WordPress という 2 つのマーカーの間に保存します。

これらのマーカー内の警告に注意してください:
「BEGIN WordPress」と「END WordPress」の間のディレクティブ(行)は動的に生成されるため、WordPressフィルターを介してのみ変更する必要があります。これらのマーカー間のディレクティブに加えられた変更は上書きされます。
これは、WordPress がこれらのマーカーの外側に追加したコードを上書きまたは変更しないことを意味します。ユーザーは通常、# BEGIN WordPress マーカーの上に、ファイルの先頭にカスタムコードを追加します。
ヒント: .htaccess は、WordPress サイトのルートフォルダーにある非表示ファイルです。見つけにくい場合は、WordPress サイトで .htaccess ファイルが見つからない理由に関するガイドを参照してください。
プラグインのマーカー内のコードを変更しないでください
プラグインが.htaccessに設定を保存すると、それは # BEGIN Plugin と # END Plugin のようなマーカーの間に配置されます。
例えば、ウェブサイトの速度とパフォーマンスを向上させるためにW3 Total Cacheプラグインをインストールしてセットアップした場合、それは# BEGIN W3TC Browser Cacheと# END W3TC Browser Cacheマーカーの間に.htaccessにルールを追加します。

これらのルールは、プラグインの設定を変更するたびに上書きされるため、それらのマーカーの間に独自のカスタム.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 を変更するのを停止する
もう1つの解決策は、WordPressに.htaccessファイルに書き込まないように指示するコードスニペットを使用することです。これは、プラグインをブロックせずにWordPressが.htaccessを変更するのを停止したい場合に役立ちます。
注意: WordPressのコアファイルを編集することは危険を伴います。わずかな間違いでも、サイトに重大なエラーを引き起こす可能性があります。そのため、この方法は上級ユーザーにのみ推奨されます。
wp-config.php ファイルの最後に以下のコードスニペットを追加するだけです。ヘルプが必要な場合は、WordPress で wp-config.php ファイルを編集する方法に関するガイドを参照してください。
add_filter('got_rewrite', '__return_false');
これが完了すると、WordPress は .htaccess ファイルに書き込まなくなります。
WordPressが.htaccessを変更できない場合に表示されるエラーメッセージ
.htaccess が読み取り専用に設定されている場合にパーマリンク設定を変更しようとすると、エラーメッセージが表示されます。
設定 » パーマリンク設定 ページの先頭に、「.htaccess ファイルを今すぐ更新する必要があります。」というメッセージが表示されます。

これは、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エラーのトラブルシューティング初心者ガイド(ステップバイステップ)
この記事が気に入ったら、WordPressのビデオチュートリアルについては、YouTubeチャンネルを購読してください。 TwitterやFacebookでもフォローできます。

イジー・ヴァネック
これはWPBeginnerの最初の記事の1つで、顧客の.htaccessが上書きされている理由を意図的に検索したときに書かれました。今ではその理由を知り、理解し、.htaccessを正しく記述できるようになりました。理由を理解していただき、ありがとうございます。
WPBeginnerサポート
当社のガイドがお役に立てて嬉しいです!
管理者