CodeIgniter nginx Rewrite Rule

สวัสดีครับ วันนี้เจอเรื่องปวดหัวนิดหน่อย เกี่ยวกับการเขียน rewrite ของ nginx
ให้ codeigniter  สามารถทำงานได้ เพราะปกติบน apache2 จะใช้ .htaccess
ผมจะไม่พูดถึงการ install nginx+PHP Fast-CGI  นะครับ เพราะคิดว่าหาอ่านได้
ไม่ยากนัก แต่จะพูดถึงการเขียน rewrite ที่ทำให้ nginx ทำงานร่วมกับ codeigniter
มาดูกันเลยครับ ขั้นตอนมีดังนี้

location /
{
index index.php;
root /path/to/your/ci/directory;

if ($request_filename !~ (js|css|images|robots\.txt|index\.php.*) ) {
rewrite ^/(.*)$ /index.php/$1 last;
}
}

location ~ /index.php/
{
include /usr/local/nginx/conf/fastcgi.conf;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /path/to/your/index.php;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_pass 127.0.0.1:9000;
}

จากนั้นทำการแก้ไข file application/config/config.php ของตัว CodeIgniter
ให้เป็น $config[‘uri_protocol’]  = “REQUEST_URI”;
เท่านี้ก็จะทำให้เราสามารถใช้งาน CodeIgniter กับ nginx ได้แล้วครับ ..

Facebook Comments

Leave a Reply

Your email address will not be published. Required fields are marked *