WordPressのパーマリンクをカスタム構造にする時のnginx設定

最近、nginxでWordPressをさわっています。

サイトのユーザビリティ的にも、SEO的にも、パーマリンクの設定をカスタマイズした方がいいそうです。

「設定 → パーマリンク」から設定できます。

今回、とあるWordPressのサイト構築で、カスタム構造を選択して下のような設定をしました。

「http://………………/%category%/%postname%/」

すると、404エラーが大量発生。。。

アクセスログを確認すると、「http://………………/xxxxx/」というURLにアクセスした時、nginxが「ドキュメントルート/xxxxx/index.php」を探しにいってしまうのが原因だとわかりました。

スポンサーリンク
レクタングル大1

nginxでWordPressを使う際、「ドキュメントルート/xxxxx/index.php」がない場合は、WordPressのindex.phpへ投げる、という設定が必要になります。


location / {
try_files $uri $uri/ @wordpress;
}


これで、URLに一致したファイルがあるか? → なかったらディレクトリがあるか? → それもなかったら@wordpressロケーション(名前付きロケーション)に投げる、となります。

そして、@wordpressロケーションを定義しておきます。


location @wordpress {
fastcgi_param SCRIPT_FILENAME  WordPressのindex.phpのパス;
- その他、fastcgiの設定 -
}


これで、404エラーが発生しなくなりました!

スポンサーリンク
レクタングル大1
レクタングル大1

シェアする

  • このエントリーをはてなブックマークに追加

フォローする