Skip to main content
  1. Posts/

How to use mod_rewrite in Apache

·2 mins·
apache apache
Table of Contents

mod_rewrite adalah modul dari server web Apache yang memungkinkan memanipulasi (mengubah) URL yang diminta oleh klien sebelum permintaan tersebut benar-benar diproses oleh server. Modul ini dapat dikonfigurasi baik melalui file konfigurasi virtual host ataupun melalui file .htaccess

Dengan menggunakan mod_rewrite, Anda dapat membuat aturan-aturan kompleks untuk keperluan seperti

  • Search Engine Optimization (SEO): Memastikan URL ramah SEO untuk meningkatkan peringkat pencarian.
  • Simplified Navigation: Membuat URL yang lebih pendek dan mudah diingat untuk meningkatkan pengalaman klien.
  • Security: Menyembunyikan struktur direktori dan file asli untuk mengurangi risiko keamanan.

How URL Rewriting works
#

Sytax untuk aturan RewriteRule.

RewriteRule pattern substitution [flags]
  • Pattern: Ini adalah ekspresi regular yang cocok dengan URL yang ingin ditulis ulang.
  • Substitution: Ini adalah URL yang ingin Anda alihkan.
  • Flags: parameter opsional yang digunakan untuk mengubah fungsionalitas aturan.

Contoh.

RewriteEngine on
RewriteRule ^about.html$ aboutus.html [NC]

Aturan tersebut akan mengarahkan klien yang mengakses halaman about.html ke aboutus.html dengan tambahan flags [NC] agar berlaku huruf besar dan kecil (case-insensitive).

More Complex Examples
#

Misalkan Anda memiliki situs dinamis dimana profil pengguna diakses melalui URL www.example.com/profile.php?user=username dan Anda dapat mengubahnya menjadi www.example.com/username agar lebih ramah pengguna dengan menerapkan aturan berikut.

RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?user=$1

Rewriting URLs for Pagination

Katakanlah Anda memiliki blog yang menampilkan postingan dengan URL seperti www.example.com/blog?page=2. Anda dapat membuatnya lebih mudah dibaca dan ramah SEO dengan mengubahnya menjadi www.example.com/blog/page/2.

RewriteEngine on
RewriteRule ^blog/page/([0-9]+)$ blog.php?page=$1

Removing File Extensions

Untuk menghapus ekstensi .php dari URL agar terlihat lebih bersih.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

Ini akan membuat URL seperti www.example.com/about.php menjadi dapat diakses dengan www.example.com/about

Preventing Image Hotlinking

Hotlinking adalah praktik dimana suatu situs web dapat menggunakan resource seperti gambar langsung di situs yang Anda miliki. Sehingga hal ini dapat menghabiskan bandwidth dan memperlambat situs. Anda bisa mencegah dengan menggunakan aturan berikut.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

Backreferencing Jika Anda memiliki situs seperti toko online yang menampilkan produk dengan URL seperti http://example.com/request.php?id=foo&name=bar. Anda dapat mengubahnya menjadi http://example.com/product/foo/bar agar lebih mudah dibaca dengan aturan berikut.

RewriteEngine On
RewriteRule ^product/([A-Za-z]+)/([A-Za-z]+)$ request.php?id=$1&name=$2

Aturan tersebut mengambil pola dari tanda kurung dan menyimpannya dalam variabel referensi $1 dan $2

Referensi:

Related

Monitor Apache Web Server with mod_status
·1 min
apache apache
Cara Menginstal ModSecurity di Apache
·2 mins
apache apache modsec
Menggunakan Apache Sebagai Proxy dan Load Balancer
·1 min
apache apache ubuntu
Install Apache dengan PHP-FPM dan Userdir
·3 mins
apache ubuntu linux php apache
Enable Userdir Module httpd
·2 mins
apache apache
Blocking XMLRPC WordPress with ModSecurity
·2 mins
modsec apache modsec