Menyeting URL rewrite NGINX untuk subfolder

 

Pada tutorial kali ini saya akan berbagi pengalaman saya untuk menyeting url rewrite dalam subfolder. Tapi sebelum itu saya akan jelaskan dulu apa itu Url rewrite. Url rewrite adalah teknik yang umum digunakan oleh para admin web untuk memperindah tampilan link dari sebuah website dinamis. Pada umumnya tampilan web dinamis tanpa url rewrite adalah seperti ini :

http://www.situs.com/show\_a\_product.php?product_id=7  

kita memanggil sebuah script php dengan memasukkan parameter yang sesuai untuk menghasilkan tampilan yang diinginkan. Tampilan seperti itu kurang nyaman untuk user. Selain itu, url seperti itu juga mempersulit mesin pencari seperti google atau yahoo untuk menemukan situs kita.

Pada prinsipnya url rewrite adalah untuk membaca url normal (url yang memiliki kata / kalimat sederhana yang dipisahkan oleh garis miring. ex : “http://situs.com/produk/7/keterangan”) dan kemudian menerjemahkannya menjadi alamat file dan parameter lalu memanggilnya. Proses url rewrite dilakukan oleh rewrite engine dalam server kita. saat ini sebagian besar server (misal : apache, nginx) telah mendukung url rewrite meski cara untuk menyeting rewrite engine masing – masing url berbeda – beda.

Pada apache, url rewrite dapat dilakukan dengan memberikan syntax :

RewriteEngine On  
RewriteBase /  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule . /index.php [L]  

syntax tersebut dapat kita letakkan di file konfigurasi apache2 (kalau ubuntu di : “/etc/apache2/sites-available/000-default.conf”) atau bisa juga diletakkan di file .htaccess pada masing – masing folder. Sedangkan pada server nginx konfigurasi dilakukan dengan mengganti baris

try_files $uri $uri/ =404;  

dengan

try_files $uri $uri/ /index.php?q=$uri&$args;  

Cara yang paling disukai oleh pengguna webserver apache2 adalah dengan menuliskan syntax seting url rewrite pada file “.htaccess”. File .htaccess dapat diletakkan di setiap folder dengan setting yang berbeda – beda sehingga setiap folder bisa memiliki syntax aturan sendiri – sendiri. Hal ini sangat berguna jika kita kita ingin menginstal beberapa aplikasi dalam 1 subdomain yang kita punya.

Sayangnya Untuk alasan keamanan dan performa, Nginx tidak mendukung ekstensi file .htaccess. semua pengaturan terpusat pada pengaturan yang ada di file “/etc/nginx/sites-available/default” (ubuntu). Ini sedikit menyulitkan (bagi saya) tapi setelah beberapa jam mencari di google akhirnya menemukan cara untuk menyeting nginx agar melakukan url rewrite di subfolder. Berikut adalah cara yang saya temukan :

Saya ingin membuat situs “http://playground.s4if.me/” tidak melakukan url rewrite tetapi situs “http://playground.s4if.me/siperpu/” melakukan url rewrite karena akan diisi dengan aplikasi codeigniter.

Langkah – langkahnya adalah sebagai berikut :

1 – Buat folder “siperpu/” di folder root server (kalau saya di “/var/www/html/”) kemudian install aplikasinya.

2 – Buka file config situs nginx dengan mengetikkan di terminal :

gksu gedit /etc/nginx/sites-available/default  

3 – Cari blok syntax :

 location / {  
  try_files $uri $uri/ =404;  
  }

kemudian kita copy lalu paste di bawah blok tadi.

4 – Edit blok yang telah kita copy tadi menjadi seperti ini :

location /**siperpu**/ {  
  try_files $uri $uri/ /**siperpu**/index.php?q=$uri&$args;  
}

(kata yang dicetak tebal bisa diganti sesuai dengan nama folder yang dibuat)

5 – Simpan lalu restart nginx dengan mengetikkan (pada ubuntu) :

sudo service nginx restart  

6 – Situs “http://playground.s4if.me/siperpu/” sudah bisa diakses dan url rewrite telah berfungsi.

Ok, tutorial untuk menyeting URL rewrite nginx sudah selesai. Kritik, saran dan koreksi mengenai artikel ini sangat saya terima. Semoga bermanfaat.
🙂

%d blogger menyukai ini: