Jumat, 23 November 2018

Yii2: Membuat Pretty URL pada Advanced Template

05.56 Posted by uba Nezad , No comments
Hasil gambar untuk pretty url


yang dibahas pada artikel ini adalah tentang bagaimana mengatur website url untuk aplikasi frontend dan backend. Sebagai contoh: kedua aplikasi tersebut ada pada direktori c:\xampp\siprodik\webku\, nah untuk mengakses aplikasi frontend kita gunakan http://localhost/siprodik/frontend/web/ demikian juga untuk aplikasi backend. Nah yang akan kita lakukan adalah mengubah aturan tersebut menjadi lebih mudah yaitu:

Aplikasi frontend = http://localhost/siprodik
Aplikasi backend = http://localhost/siprodik/administrator
yang prtama asumsikan kita menggunakan XAMPP dengan webserver Apache tentunya.
berikut langkahnya :
1. Buatlah file .htaccess pada webroot yaitu pada direktori c:\xampp\htdocs\siprodik\
1
2
3
4
5
6
7
8
9
# prevent directory listings
Options -Indexes
IndexIgnore */*
# follow symbolic links
Options FollowSymlinks
RewriteEngine on
RewriteRule ^administrator(/.+)?$ backend/web/$1 [L,PT]
RewriteRule ^(.+)?$ frontend/web/$1

kode diatas adalah melakukan penulisan kembali (rewrite) url dengan mengarahkan request apapun ke frontend/web/ kecuali request administrator, yang mana akan diarahkan ke backend/web/

2. Pada web directori aplikasi frontend dan backend tambahkan juga file .htaccess standard Yii2 sebagaimana yang direkomendasikan


1
2
3
4
5
6
7
RewriteEngine on
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php


3. Pada backend\config\main.php dan frontend\config\main.php bagian cmponent, tambahkan pengaturan seperti berikut:
1
2
3
'urlManager' => [
 'enablePrettyUrl' => true,
 'showScriptName' => false,

5. Masih pada backend\config\main.php tambahkan parameter berikut:


  • 1
  • 2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    return [
        ....,
        'homeUrl' => '/siprodik/administrator',
        ....,
        'components' => [
            ...,
            'request' => [
                'baseUrl' => '/siprodik/administrator',
            ],
        ...,
    ]
    demikian juga untuk frontend..
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    return [
        ....,
        'homeUrl' => '/siprodik',
        ....,
        'components' => [
            ...,
            'request' => [
                'baseUrl' => '/siprodik',
            ],
        ...,
    ]


    5. Selesai

    0 komentar:

    Posting Komentar