[yii2] Cara mudah menyembunyikan frontend/web dan backend/web

Yii2 menyediakan url default dengan frontend/web dan backend/web. Dalam aplikasi web sebenarnya, tampilan URL seperti ini tidak menarik, jadi dalam hal ini kita perlu menghapus atau menyembuyikan frontend/web dari URL.

Ada beberapa cara untuk melakukan hal tersebut, dalam contoh di bawah ini kita akan melakukan dengan cara:

  1. Menggunakan Virtual host
  2. Memodifikasi Yii2

1. Virtual host apache

Untuk meyembunyikan frontend/web dan backend/web pada apache dapat anda lakukan dengan membuat virtual host. Buka file konfigurasi apache “…apacheconfextrahttpd-vhosts.conf” dengan notepad. Tambahkan pada baris terakhir

<VirtualHost *:80>
    ServerName frontend.bardimin
    #sesuaikan dengan direktori instalasi yii yang dibuat
    DocumentRoot "C:/xampp/htdocs/yii2-test/frontend/web/"
        
    <Directory "C:/xampp/htdocs/yii2-test/frontend/web/">
        RewriteEngine on
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . index.php
        DirectoryIndex index.php
    </Directory>
</VirtualHost>
    
<VirtualHost *:80>
    ServerName backend.bardimin
    #sesuaikan dengan direktori instalasi yii yang dibuat
    DocumentRoot "C:/xampp/htdocs/yii2-test/backend/web/"
        
    <Directory "C:/xampp/htdocs/yii2-test/backend/web">
        RewriteEngine on
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . index.php
        DirectoryIndex index.php
    </Directory>
</VirtualHost>

Kemudian edit file hosts pada “C:WindowsSystem32driversetchosts” dengan notepad dan tambahkan pada baris terakhir

#sesuaikan dengan ServerName seperti di atas
127.0.0.1 frontend.bardimin
127.0.0.1 backend.bardimin

Untuk mengakses hasilnya dari browser ketikkan alamat url sebagai berikut :

– frontend: http://frontend.bardimin/
– backend: http://backend.bardimin/

2. Memodifikasi Yii2

Cara kedua, yaitu dengan membuat salinan direktori dari “assets” dan “css” serta file “index.php” yang ada pada direktori “frontend/web” ke direktori root instalasi yii.

copy to rooot

Kemudian buka file index.php dan salin kode berikut ini.

<?php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require(__DIR__ . '/vendor/autoload.php');
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/common/config/bootstrap.php');
require(__DIR__ . '/frontend/config/bootstrap.php');

$config = yiihelpersArrayHelper::merge(
    require(__DIR__ . '/common/config/main.php'),
    require(__DIR__ . '/common/config/main-local.php'),
    require(__DIR__ . '/frontend/config/main.php'),
    require(__DIR__ . '/frontend/config/main-local.php')
);

(new yiiwebApplication($config))->run();

Untuk mengakses hasilnya dari browser ketikkan alamat url “http://localhost/” di ikuti direktori instalasi yii, misal “http://localhost/yii-advanced”.

Artikel Terbaru