wordpressのパーマリンク設定を変更すると既存の記事が404(NOT FOUND)となる

投稿者: | 2014/09/05

概要

本来は初期設定時に行うべきだったんでしょうね。
とりあえず、記事を投稿した後にパーマリンク設定をすると、
URL構造を自分好みに変更できることを知った。

変更

早速、変更しました。
「設定」→「パーマリンク設定」
「カスタム構造」:http://blog.mtsakana.com/%category%/%postname%

以下のようなパーマリンクの構成タグがあるようです。

構成タグ 内容
%year% 投稿年
%monthnum% 投稿月
%day% 投稿日
%hour% 投稿時
%minute% 投稿分
%second% 投稿秒
%postname% 投稿タイトル
%post_id% 投稿固有のID番号
%category% カテゴリー名
%tag% タグ名
%author% 著者名

変更後、topページは表示されるが、
個別の記事を閲覧しようとすると、404(NOT FOUND)となった。

いろいろ調べた結果、nginxの設定が問題らしい。

nginxの設定変更

このサイトを参考に設定を書き換えました。

  location / {
    root /var/www/blog/wordpress;
    index index.php;

    if (-f $request_filename) {
      expires 30d;
      break;
    }

    if (!-e $request_filename) {
      rewrite ^.+?($/wp-.*) $1 last;
      rewrite ^.+?(/.*\.php)$ $1 last;
      rewrite ^ /index.php last;
    }

  }

  location ~ \.php$ {
    root /var/www/blog/wordpress;
    include fastcgi_params;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    client_max_body_size 500M;
  }

上記設定後、nginxの再起動。

# sudo service nginx restart

以上。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です