Konfigurasi Index, Error_Page, Return, Rewrite, Try_files Redirect Pada Nginx


Konfigurasi Redirect Nginx - Salah satu yang membuat nginx sangat flexible adalah option yang disediakan nginx untuk melakukan redirect request uri. Di pembahasan kali ini www.dimasrio.com akan menjelaskan berberapa fitur nginx yang memungkinkan kita untuk melakukan redirect.

Baca Juga :
Konfigurasi Location Block Nginx
Install Nginx Source di CentOS 7
Disini kita akan melanjutkan konfigurasi yang sebelumnya, bagi sobat ada yang belum membaca artikel sebelumnya silahkan buka pada link di atas.

Index

Index merupakan adalah cara yang paling mudah untuk menentukan file index. Dengan index, file yang yg kita definisikan akan menjadi sebuah index.

Contoh :
location /home {
      index dimzrio.html;
      root /opt/nginx/html;
}
Lalu buat file dimzrio.html di dalam direktory /opt/nginx/html/home. Lalu access dengan url https://dimzrio.com/home maka secara otomatis dimzrio.html akan menjadi file index location /home.

Error_page

Error page ini adalah salah satu cara untuk handling http error. Sehingga kita bisa membuat redirect pada semua http error ke halaman tertentu.

Contoh :
error_page 404 /404.html;
location = /404.html {
       root /opt/nginx/html;
}
Lalu buat file 404.html di dalam direktory /opt/nginx/html. Jika request uri tidak ditemukan maka akan di redirect ke halaman 404.hml.


Return

Untuk melakukan redirect dengan menggunakan return, kita perlu memahami http respond code. HTTP Redirect akan mengembalikan response code 301 ( Permanent Redirect ) dan 302 ( Temporary Redirect).

Contoh :
location ~*/img/(.*)$ {
           return 301 $scheme://$host/images/$1";
}
Lalu letakan file gambar (sebagai contoh saya menggunakan file nginx.png) pada direktory /opt/nginx/html/images. Selanjutnya akses dengan https://dimzrio.com/img/nginx.png maka akan di redirect ke https://dimzrio.com/images/nginx.png.

Rewrite

Jika kita menggunakan rewrite untuk membuat melakukan redirect, kita dapat melakukannya di luar location block. 

Contoh:
rewrite ^/logo/(.*)$ $scheme://$host/images/$1 permanent;
Perintah di atas output hampir sama dengan return. JIka user mengakses https://dimzrio.com/logo/nginx.png maka akan di redirect ke https://dimzsrio.com/images/nginx.png.

Try_files

Jika kita sering menggunakan cms atau framework, sudah seharusnya kita mempelajari try_files redirect. Biasanya try_files digunakan untuk request uri yang dinamik karena dapat melakukan pencocokan requests.

Contoh:
location /data {
       root /opt/nginx/html;
       try_files $uri $uri/ $uri.txt $uri.html =404;
}
Lalu buatlah file bernama info.txt dan example.html pada direktory /opt/nginx/html/data. Kemudian access dengan menggunakan url berikut:

  • https://dimzrio.com/data/info 
  • https://dimzrio.com/data/example
Dari request uri diatas, maka try_files akan mengembalikan respond sesuai file yang tersedia pada /home. Akan tetapi jika request uri tidak cocok maka akan mengembalikan error code 404.

Sebagai tambahan saya akan memberikan contoh bagaimana melakukan redirect http ke https dan non-www ke www.

HTTP ke HTTPS
if ($scheme = http) {
        return 301 https://$server_name$request_uri;
}
Non-WWW to WWW
if ($host = "dimzrio.com" ) {
        return 301 https://www.$host$request_uri;
}

Bagaimana sobat? Banyak sekali bukan cara untuk melakukan redirect pada nginx? Semoga tutorial konfigurasi redirect nginx bermanfaat bagi kita semua dan selamat mencoba..!!!!


EmoticonEmoticon

Catatan: Hanya anggota dari blog ini yang dapat mengirim komentar.