WordPressのデフォルト.htaccessと、安全に追加できる設定
ホーム
WordPressの.htaccessガイド
WordPressのデフォルト.htaccess(シングルサイトとマルチサイト) | We.Inc
シングルサイト、サブディレクトリ型マルチサイト、サブドメイン型マルチサイト向けのWordPressデフォルト.htaccessルールと、wp-config.phpをブロックしHTTPSを強制する安全な追加設定。自分用のファイルを作ってコピーできます。
Apache上のWordPressには、サイトのルートに短い.htaccessブロックが必要です。存在しないファイルやフォルダーへのリクエストをすべてindex.phpに送るもので、これによりパーマリンクが機能します。ブロックは# BEGIN WordPressと# END WordPressの間に貼り付け、独自のルールはそのマーカーより上に置きましょう。
シングルサイト用ブロックの各行の役割
RewriteEngine On このフォルダーでmod_rewriteを有効にする
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] AuthorizationヘッダーをPHPに渡す
RewriteBase / リライトをサイトのルートからの相対で行う
RewriteRule ^index\.php$ - [L] index.php自体へのリクエストはそのままにする
RewriteCond %{REQUEST_FILENAME} !-f 実在するファイルに一致しない場合のみ
RewriteCond %{REQUEST_FILENAME} !-d かつ実在するフォルダーにも一致しない場合
RewriteRule . /index.php [L] それ以外はすべてWordPressに渡す
.htaccessが壊れていると、たいていトップページ以外のすべてのページが404になるか、プラグインの編集後にサイト全体が500エラーになります。下でインストールの種類と追加したい項目を選び、完成したファイルをコピーしてください。WordPress部分は、WordPress開発者ドキュメントで公開されているルールと同じです。
シングルサイト、サブディレクトリ型マルチサイト、サブドメイン型マルチサイトから選びます。 追加したい項目にチェックを入れます。それぞれWordPressのマーカーより上に置かれるため、WordPressに上書きされることはありません。 ファイルをコピーし、現在の.htaccessをバックアップしてから、wp-config.phpがあるフォルダーに新しいファイルをアップロードします。 投稿と管理画面を開いて確認し、設定のパーマリンクで「変更を保存」をクリックして、WordPressにルールを確認させます。
プラグインが触る前に、動作しているファイルのコピーを取っておきましょう。正常なファイルを戻すほうが、500エラーをデバッグするより早く済みます。 Apacheのメイン設定を編集できるなら、これらのルールはそちらに書きましょう。Apache自身のドキュメントによると、.htaccessはすべてのリクエストでディレクトリごとの検索を発生させます。 BEGINとENDのWordPressマーカーの内側は手で編集しないでください。パーマリンク設定を保存すると、WordPressがその部分を書き換えることがあります。 Nginxは.htaccessを完全に無視します。Nginxのホストでは、serverブロックのtry_files行が同じ役割を果たします。
よくある質問
WordPressの.htaccessファイルはどこにありますか?
WordPressのインストール先のルートフォルダーで、wp-config.phpやwp-contentフォルダーと同じ場所です。名前がドットで始まるため、ファイルマネージャーやFTPクライアントでは隠しファイルの表示をオンにするまで見えないことがよくあります。
WordPressのデフォルト.htaccessに戻すには?
ファイルの中身をこのページのシングルサイト用ブロックに置き換えるか、壊れたファイルの名前を変えてから管理画面の設定のパーマリンクを開き、保存をクリックします。ファイルに書き込める場合、WordPressが新しいブロックを書き込みます。
トップページ以外のすべてのページが404になるのはなぜですか?
ほぼ確実に、リライトルールがないかmod_rewriteがオフになっています。トップページはindex.phpそのものなので表示されますが、パーマリンクはどれも、未知のパスをindex.phpに送るルールを必要とします。
どのマルチサイト用ブロックが必要ですか?
ネットワークをインストールした方式に合うものです。example.com/shopのようなサイトはサブディレクトリ用、shop.example.comのようなサイトはサブドメイン用のブロックを使います。両者は、wp-adminやファイルのパスからサイトのプレフィックスを取り除く方法が異なります。
.htaccessでwp-config.phpへのアクセスをブロックしても安全ですか?
はい。PHPはwp-config.phpをWeb経由ではなくディスクから読み込むため、Webからのリクエストを拒否してもサイトには影響しません。WordPressのドキュメントでも、ここで示しているのと同じFilesMatchルールが推奨されています。
リライトの仕組み
Apacheは条件を上から順に読みます。実在する画像やスタイルシートへのリクエストは-fに一致して直接配信され、実在するフォルダーへのリクエストは-dに一致し、それ以外はすべてindex.phpに流れます。そこでWordPressが、そのアドレスに対応する投稿、固定ページ、アーカイブを探します。 HTTP_AUTHORIZATIONの行は、AuthorizationヘッダーをPHPが読める変数にコピーします。サーバー構成によっては、こうしないとPHPがこのヘッダーを受け取れず、それを使ったログインが壊れます。
独自のルールを置く場所
リダイレクト、HTTPSのルール、アクセス制限は# BEGIN WordPressより上に置きます。ルールは順番に実行されるため、WordPressブロックの後ろに置いたリダイレクトは、ほとんどのURLで実行されません。 追加は少なく、テスト済みのものだけにしましょう。各ルールはすべてのリクエストで実行され、ファイルのどこかに誤字が1つあるだけで、サイト全体が500エラーで止まります。
WordPress公式の3つのブロック
これらはWordPressがインストールの種類ごとに公開しているルールです。どれか1つだけを使ってください。
シングルサイト
Webルートにインストールした通常のWordPressサイト用のブロックです。
サブディレクトリ型マルチサイト
各サイトがexample.com/shop/のようなパスにあるネットワーク用です。
サブドメイン型マルチサイト
各サイトがshop.example.comのような独自のサブドメインを持つネットワーク用です。
安全な追加設定
どれも# BEGIN WordPressより上に置きます。1つずつ追加し、そのたびにサイトを再読み込みしてください。
機密ファイルへのWebアクセスを拒否する
Apache 2.4のRequireディレクティブを使っています。古い2.2のサーバーでは、従来のOrderとDenyの構文が必要です。
HTTPSを強制する
ホストとパスを保ったまま恒久的な301リダイレクトを行います。ホスティングの管理画面にHTTPS切り替えがある場合は、そちらを使ってこれは省略してください。
.htaccessビルダー
WordPressのインストールの種類
シングルサイト
マルチサイト(サブディレクトリ)
マルチサイト(サブドメイン)
WordPressブロックより上に置く追加項目
wp-config.php、.htaccess、.htpasswd、debug.logへのWebアクセスをブロックする
すべてのhttp://リクエストをhttps://にリダイレクトする
インデックスファイルのないフォルダーの中身をApacheが一覧表示しないようにする
あなたの.htaccessファイル
HTTPSリダイレクトは証明書が機能してからオンにしてください。そうしないと、訪問者にブラウザーの警告が表示されます。
無料で始める · クレジットカード不要
関連: ガイド|Webマーケティングと集客を学ぶ
製品
ご利用いただける方
機能
リソース
会社情報
サイトマップを見る