Tips menggunakan .htaccess rewrite untuk multi webapps tanpa virtual host

Saat menggunakan sebuah webserver untuk menjalankan beberapa web application, teknik yang lazim digunakan adalah dengan membuat virtual host. Teknik ini dipakai oleh shared hosting pada penyedia jasa layanan hosting. Namun pada proses rapid application development (ngejar waktu😛 ), developer biasanya enggan untuk mengkonfigurasi virtual host pada Apache, karena memang ini adalah tugasnya web masters (pengelola web server). Tools yang umumnya digunakan pada saat development adalah XAMPP.

Jadi, apabila kita memiliki aplikasi one dan two, maka untuk mengaksesnya kita akan memanggil alamat:

http://localhost/one dan http://localhost/two

Namun, kondisi ini belum merepresentasikan environment yang sebenarnya (pada saat production). Misalnya kita ingin memanggil aplikasi one dengan http://one.mysite.com  dan aplikasi two dengan http://two.mysite.com

Bagaimana cara untuk mengakalinya supaya kita bisa memanggil dengan URL tersebut tanpa harus membuat virtual domain?

1. Edit file c:/windows/system32/drivers/etc/hosts (pada windows) atau /etc/hosts (pada linux atau unix) dan tambahkan baris berikut ini:

127.0.0.1 one.mysite.com
127.0.0.1 two.mysite.com

2. Buatlah sebuah file bernama .htaccess dan letakkan pada web root folder, xampp/htdocs/ (pada windows) atau lampp/htdocs/ (pada linux). Isinya adalah sebagai berikut:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^one.mysite.com$
RewriteCond %{REQUEST_URI} !^/one/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /one/$1
RewriteCond %{HTTP_HOST} ^one.mysite.com$
RewriteRule ^(/)?$ one/index.php [L]

RewriteCond %{HTTP_HOST} ^two.mysite.com$
RewriteCond %{REQUEST_URI} !^/two/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /two/$1
RewriteCond %{HTTP_HOST} ^two.mysite.com$
RewriteRule ^(/)?$ two/index.php [L]

Kini bila anda membuka browser dan mengetik URL http://one.mysite.com akan menampilkan isi htdocs/one/

dan untuk URL http://two.mysite.com akan menampilkan isi htdocs/two/

Semoga bermanfaat🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: