WordPress パーマリンク

Nginx + WordPressの運用について

Nginx には Apache の .htaccessに代わるものが無い為に、パーマリンクをWordpressで設定するだけではサイトがうまく動作しないと言う事を認識しておく必要がある(但し、大手のレンタル共用サーバー等ではWordpressのサイトを作成する際に、NginxのWordpressのパーマリンク等に対応した設定を自動的に生成しているようで、問題なく使用できるうになっている)

従って、Wordpress でパーマリンクの設定を行った際、Apacheの場合は.htaccessがWordpressにより自動設定されて、設定後は何もせずにサイトが動作するが、Nginxの場合は、単純に404Error となり、サイトが動作しなくなる

Nginxの設定は、自由度が高い為、これと言った正解があるわけではないようで、Wordpress のサイトに掲載されている情報のままではマルチサイトでかつパーマリンク対応が出来ないようである

Nginxのマルチサイト用としてWordpressのサイトに掲載されている設定に、以下を追加したところ、パーマリンクが正常に動作することが確認できているので掲載しておく(下記の例で、サイトのルートは xxxx)

location /xxxx {
  root /var/www/html/xxxx;
  try_files $uri $uri/ /xxxx/index.php?q=$uri&$args;
}

尚、上記の設定のみでは wp-admin へのアクセスがうまく行かない問題が確認されている

当面の回避策として下記の設定を提案中

location /xxxx {
  root /var/www/html/xxxx;
  try_files $uri $uri/ /xxxx/index.php?q=$uri&$args;
  location /xxxx/wp-admin {
    root /var/www/html/xxxx/wp-admin;
    try_files $uri $uri/ /xxxx/wp-admin/index.php;
  }
}