CodeIgniterのためのNginx Rewrite Rule

CodeIgniter

網元でセットアップした環境にCodeIgniterをインストールしました。
NginxのRewrite Ruleではまったので、備忘録として残しておきます。

 

CodeIgniter用のRewrite Rule定義を新規作成

site.com/codeigniterへのURLを書き換えます。

    # CodeIgniter
    location /codeigniter {
        alias /var/www/vhosts/codeigniter;
        index index.php;
        include /etc/nginx/expires;
        if (!-d $request_filename) {
            rewrite ^/codeigniter/(.+)/$ /codeigniter/$1 permanent;
        }
        if (!-e $request_filename) {
            rewrite ^/codeigniter/(.*)$ /codeigniter/index.php?/$1 last;
            break;
        }
    }
    location ~ ^/codeigniter/.+.php$ {
        alias /var/www/vhosts/codeigniter;
        fastcgi_pass   phpfpm;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /var/www/vhosts/codeigniter/index.php;
        include        fastcgi_params;
    }
    location ~ /codeigniter/.ht {
        deny all;
    }

 

作成したファイルをinclude

# CodeIgniter
include     /etc/nginx/codeigniter;

 

CodeIgniterのURI PROTOCOLをREQUEST_URIへ変更

/*
|--------------------------------------------------------------------------
| URI PROTOCOL
|--------------------------------------------------------------------------
|
| This item determines which server global should be used to retrieve the
| URI string.  The default setting of 'AUTO' works for most servers.
| If your links do not seem to work, try one of the other delicious flavors:
|
| 'AUTO'			Default - auto detects
| 'PATH_INFO'		Uses the PATH_INFO
| 'QUERY_STRING'	Uses the QUERY_STRING
| 'REQUEST_URI'		Uses the REQUEST_URI
| 'ORIG_PATH_INFO'	Uses the ORIG_PATH_INFO
|
*/
$config['uri_protocol']	= 'REQUEST_URI';

 

 参考情報

http://ellislab.com/forums/viewthread/99180/
CodeIgniter NGINX Rewrite Rules

 

コメント

タイトルとURLをコピーしました