ミニマリスト図書館

エンジニア目線で日常生活をちょっとだけ豊かにするためのブログ

NginxでCodeIgniterのrewrite設定

NginxとCodeIgniterの設定で、rewrite loopに陥ったのでメモ。

URIはIndex.phpも省いて、コントローラ名も省いちゃいたいぜい。
(こんな感じのURLがお望み -> http://example.com/info)

  • nginx側の設定
location / {
  rewrite /(.*)$ /index.php?c=xxx&m=$1;
}

(xxxはコントローラー名になります)

  • CodeIgniter側の設定

config.phpのenable_query_stringsをTRUEに変える。

$config['enable_query_strings'] = TRUE;
  • アクセス

http://example.com/infoにアクセスする事で以下URLにアクセスされます。
http://example.com/index.php?c=xxxx&m=info
わーいわーい。

もし、ブラウザにrewriteしたアドレスを表示させたいのであればredirectをつければOK。
確認にもなるお。

rewrite /(.*)$ /index.php?c=xxx&m=$1 redirect;

他の参考サイト様を見たらコントローラー名は指定してないけど、デフォルトコントローラー設定したりとかでいけるだろうか…。