nginxでサブディレクトリに配置したWordpressが動かないや -> パーマリンクの設定だった

HTTPサーバーはnginxで、Railsアプリをルートに、特定のサブディレクトリのときだけWordpressを動かしたいって感じの設定をしているのだけど、動きません。

nginxは、Rails(unicorn)用とWordpress(fast-fpm)用のvirtualhostを2つ作って、最初は後者にリクエストが飛んできて、それが特定ディレクトリ以外へのリクエストならUnicorn用のvirtualhostへのポート違いなproxyにするという設定。(そもそもこれがベストプラクティスなのかはわからん)

virtualhostを2つにする利点は、nginxの設定がそれぞれで柔軟にできるというところ。serverディレクトリでできる設定を別々にできるので。

ここで、問題が。。

Wordpressがトップページは動くのだけど、その他のページで全部404になってしまう(!!)

どうやったら直るのだろう。。

どうやら、このエラーはパーマリンクに関することのよう。

https://ja.forums.wordpress.org/topic/470

以下の記事とか。

http://qiita.com/egnr-in-6matroom/items/a08f4851bf16d0131e60

ngix + php−fpmでは、nginx側でURLを処理して適切にphp-fpmへ渡してあげないといけません。(JavaEEのようにコンテキストを持たないので。。。)

こことかめっちゃ参考になります。。

  • Nginx で WordPress を使う時の注意点

http://server-setting.info/centos/nginx-wordpress-check-point.html

confファイルにtry_filesをサブディレクトリのuriに合わせて設定したら直りました。よかった。。。

try_files $uri $uri/ /blog/index.php?q=$uri&$args;