27/05/2019

Cara Rewrite URL pada NGINX

Melakukan rewrite url dengan .htaccess di nginx - Masalah yang sering kali terjadi pada pengguna awal nginx adalah, kesulitan atau kebingungan untuk melakukan Rewrite Url seperti yang biasa mereka lakukan pada Apache dengan file .htaccess nya.

Berbeda dengan apache. nginx, tidak mengenal apa itu .htaccess. nginx tidak melakukan rewrite url / konfigurasi apapun pada .htaccess, karena nginx memang tidak mengenal .htaccess.
https://petualangtekno.blogspot.com/2019/05/cara-rewrite-url-pada-nginx.html
Oleh karena itu, nginx menyediakan suatu file yang tidak asing bagi kita, terutama pada saat kita install dan konfigurasi awal nginx. yaitu, file default .

Baca juga: Konfigurasi WEB Server Nginx pada Debian 9 Stretch

Secara default, file tersebut terletak pada /etc/nginx/sites-enabled/default atau /etc/nginx/sites-available/default , (saya biasanya langsung menggunakan yang sites-enabled).

Pada kasus lain, jika ingin menggunakan framework codeigniter misalnya. Kita harus melakukan rewrite agar fungsi routing dapat berjalan. Yang biasanya kita, harus membuat sebuah file .htaccess di codeigniter untuk menempatkan perintah-perintah Rewrite.

Di nginx, kita akan melakukannya pada file yang telah saya sebut diatas, yaitu file default. Oleh karena itu, ikuti langkah berikut:

1). Check Instalasi Nginx

Periksa dulu apakah nginx anda sebelumnya sudah berjalan dengan baik untuk membuka http://localhost dan menjalankan script php.

jika belum, anda dapat mengakses artikel yang sebelumnya saya buat mengenai instalasi dan konfigurasi awal nginx. Konfigurasi WEB Server Nginx pada Debian 9 Stretch

2). Mengakses dan Membuka File Default Nginx

Untuk mengakses dan membuka file default pada nginx. Di linux, anda cukup membuka terminal lalu mengetikkan beberapa baris perintah berikut.
sudo nano /etc/nginx/sites-enabled/default
Setelah itu tekan enter, jika anda ingin konfigurasi codeigniter, tambah baris berikut diantara bracket ({  }) pada  server {     }.
location /api {
                try_files $uri $uri/ /api/index.php?/$request_uri;
}
ganti /api dengan nama file web yang akan anda akses di /var/www/html/ (default)

Jika anda pengguna OS selain linux distro berbasis debian/ubuntu silahkan sesuaikan untuk cara mengakses dan membuka file nya seperti saat anda instalasi dan konfigurasi awal nginx.

3). Percobaan Melakukan Rewrite Rules Untuk Rerouting

Jika anda ingin melakukan rewrite di file php kamu, semisal menghapus file index.php dan mengoper beberapa custom parameter url, kamu bisa melakukan perintah berikut:
location /mvcapp {
                root /var/www/html/mvcapp/;
                index /mvcapp/index.php;
                rewrite ^/mvcapp/(.*)$ /mvcapp/index.php?url=$1 last;
                try_files $uri $uri/ /mvcapp/index.php?/$request_uri;
}
Seperti biasa, ganti /mvcapp dengan direktori web yang ingin anda akses.
letakkan code diatas di file default nginx, diantara server block anda / diantara bracket ({  }) pada  server {     }.

lebih detail mengenail penggunaan rewrite bisa dibaca disini,
https://www.nginx.com/blog/creating-nginx-rewrite-rules/ 

4). Simpan dan Restart Nginx

Lakukan save dan restart nginx
di linux,
jika menggunakan perintah nano untuk membuka, ctrl+x , lalu y , lalu <enter> untuk menyimpan file. dan perintah dibawah ini untuk merestart nginx.
/etc/init.d/nginx restart

keyword:
Melakukan rewrite url dengan .htaccess di nginx

Sekian dan Terimakasih