การ rewrite ใน Nginx เขียนเมื่อ 2009.11.01 โดย

ใน Nginx ก็มีความสามารถในการ rewrite เช่นเดียวกับใน Apache, Lighttpd และ Cherokee แต่ต่างกันคือไม่มีการใช้งานผ่าน .htaccess เท่านั้น ซึ่งโดยปกติเราจะสามารถเขียน rewrite rule ไว้ใน config file ของแต่ละ vhost เท่านั้นการ rewrite สามารถเขียนได้โดย เขียนไว้ภายใน location section โดยการเขียนจะเป็น Syntax ทั่วไปของ perl และ posix ใน UNIX/Linux เท่านั้น ซึ่งคนที่คุ้นเคยสามารถเขียนได้ทันที ตัวอย่างเช่น
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?q=$1 last;
}

location ~ \.php$ {
fastcgi_param SCRIPT_FILENAME /home/www/mydomain.com$fastcgi_script_name;
include fastcgi_params;
}

จากตัวอย่างจะเป็นการส่งค่าที่ได้ไปกับตัวแปร q ผ่าน querystring เราก็สามารถตรวจสอบค่าที่ส่งมาได้เพื่อทำการแสดงผลข้อมูลได้ตามต้องการ

location / {
root /home/www/mydomain.com;
index index.html index.htm index.php;

if (-f $request_filename) {
expires 30d;
break;
}

if (!-e $request_filename) {
rewrite ^(.*)$ /index.php last;
}
}

location ~ \.php$ {
fastcgi_param SCRIPT_FILENAME /home/www/mydomain.com$fastcgi_script_name;
include fastcgi_params;
}


จากตัวอย่างนี้เราสามารถเรียกดูค่าที่ส่งมาได้จาก $_SERVER["REQUEST_URI"] ของ php ได้ทันทีโดยไม่เสียตัวแปร q เหมื่อนตัวอย่างข้างบน



คำเตือนคำเตือน เนื้อหาต่างๆ ในบทความ รวมถึงรูปภาพทั้งหมดในบทความนี้ เป็นความเห็นส่วนตัวของผู้เขียนแต่ละคน ซึ่งแต่ละคนได้ทำการลงทะเบียน และเขียนบทความลงใน Modoeye Articles นี้โดยไม่มีค่าธรรมเนียมใดๆ บทความเหล่านี้เป้าหมายเพื่อการศึกษา และความบันเทิงเท่านั้น การนำส่วนหนึ่งส่วนใดของบทความไปใช้งาน ควรทำการอ้างอิงถึงผู้เขียนและแหล่งที่มาด้วย