.htaccess untuk routing Yii2


Yii2 menggunakan struktur penyimpanan berkas yang sedikit berbeda jika dibandingkan dengan pendahulunya. Hal ini mengakibatkan perlu konfigurasi tambahan dari sisi web server, dalam hal ini, di website resmi yii merekomendasikan untuk melakukan konfigurasi virtual directory. Sayangnya hal ini tidak selamanya mungkin, terutama jika tidak memiliki akses pada hosting (eg: shared hosting). Sebagai alternatif, .htaccess dapat digunakan untuk mengatur root folder pada yii.

Sesuai dengan tutorial dari Yii, Yii2 memiliki dua template awal yang dapat digunakan untuk memulai pembuatan aplikasi, yakni basic template dan advance template.

Untuk basic template, .htaccess yang dapat digunakan adalah sebagai berikut:

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

# if request dosn’t start with web add it
RewriteCond %{REQUEST_URI} !^/(web)
RewriteRule (.*) /web/$1

# if file or directory dosn’t exists go to /web/index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /web/index.php

Sedangkan untuk advance template, .htaccess akan sedikit berbeda, menjadi sebagai berikut:

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

# if request begins with /admin remove admin and ad /backend/web/
RewriteCond %{REQUEST_URI} ^/admin
RewriteRule ^admin\/?(.*) /backend/web/$1

# other requests add /frontend/web/$1
RewriteCond %{REQUEST_URI} !^/(frontend/web|backend/web|admin)
RewriteRule (.*) /frontend/web/$1

# if frontend request
RewriteCond %{REQUEST_URI} ^/frontend/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /frontend/web/index.php

# if backend request
RewriteCond %{REQUEST_URI} ^/backend/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /backend/web/index.php

Sumber: http://www.yiiframework.com/forum/index.php/topic/47615-yii-20-basci-app-i-miss-the-htaccess-file/page__view__findpost__p__257425

2 respons untuk ‘.htaccess untuk routing Yii2

  1. sihar simbolon berkata:

    kalimat “Sedangkan untuk basic template…………..” pada bagian kedua harusnya advance template pak.

Tinggalkan komentar

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.