PHP
nginx

nginxでtry_filesを使ってフロントコントローラにCleanURLを渡す

More than 5 years have passed since last update.

今更ながらnginx+vagrantをはじめてみました。

nginxにはApacheのmod_rewrite相当のことを設定ファイルで書くようです(Apacheでも設定ファイルに書けます)。

フロントコントローラ型フレームワークで

http://example.com/aaa/bbb/ccc

のようなURL(CleanURL)を扱う場合、Apacheのmod_rewriteでURLの書き換えを行うわけですが、同様のことをnginxでする場合は、設定ファイルに以下のように記述すればいいようです。

server {
    location / {
        try_files $uri $uri/ /index.php?$request_uri;
    }
}

上記の例では、index.phpに対して「aaa/bbb/ccc」がREQUEST_URIとして渡されます。