Cấu hình loại bỏ frontend/web và backend/web trên url trong yii2 framework

Hướng dẫn cấu hình xóa bỏ frontend/web và backend/web trên đường dẫn url của ứng dụng yii2 framework. Hướng dẫn cấu hình Yii2 Framework một cách cơ bản ứng dụng cho người mới học.
Hẳn là bạn đã quen thuộc khi vào trang chủ là domain.com chứ không phải domain.com/frontend/web và backend là domain.com/backend/web đúng không? Bạn muốn cấu hình xóa bỏ frontend/web và backend/web đi. Hãy làm như sau.


1. Cấu hình virtual host



Mình cũng chưa để ý chính xác lý do tại sao khi mới cài Yii2 framework và cấu hình loại bỏ backend/web xong khi chạy ứng dụng theo dạng localhost/yii2adv/admin thì lại không nhận, khi up lên server thì chạy bình thường :D

Thôi không quan tâm đến nó nhiều nhé, mình hướng dẫn bạn cài Virtual host để chạy domain ảo trên máy bạn trước.

→ Xem cách cấu hình virtual host tại đây
Cấu hình virtual host cho ứng dụng

Hình 1. Cấu hình virtual host cho ứng dụng


Sau khi cấu hình xong ứng dụng web của mình sẽ là : http://yii2advanced.local/ bạn muốn cấu hình tên miền thành gì tùy do bạn thích nhé


2. Cấu hình loại bỏ Frontend/web và Backend/web



- Mình sẽ cấu hình trang chủ ứng dụng (frontend) là khi truy cập vào domain.com sẽ là trang chủ
- Cấu hình backend khi truy cập trang quản trị là domain.com/admin


Bước 1. Thêm file .htaccess vào root

Trong thư mục webroot (C:\xampp\htdocs\yii2adv) thêm file .htaccess với nội dung như sau

Tạo file .htacess trong root để rewrite xóa bỏ frontend/web

Hình 2. Tạo file .htacess trong root để rewrite xóa bỏ frontend/web
 
Mở file .htaccess lên với notepad++ sau đó thêm vào nội dung như sau

Options -Indexes
Options FollowSymlinks
RewriteEngine on
 
RewriteCond %{REQUEST_URI} ^/admin/$
RewriteRule ^(admin)/$ /$1 [R=301,L]
RewriteCond %{REQUEST_URI} ^/admin
RewriteRule ^admin(/.+)?$ /backend/web/$1 [L,PT]
RewriteCond $1 !^(index\.php|uploads|favicon\.ico)
RewriteRule ^(.*)$ frontend/web/$1 [L]


Bước 2. Thêm file .htaccess vào frontend/web và backend/web

Tương tự trong folder frontend/web và backend/web ta cũng tạo ra 2 file .htaccess

Tạo thêm file .htaccess trong frontend/web và backend/web

Hình 3. Tạo thêm file .htaccess trong frontend/web và backend/web


Mở 2 file .htaccess lên, nhập vào nội dung như sau

RewriteEngine on
 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
 
RewriteRule . index.php

Như vậy là cơ bản đã xong. Thử chạy ứng dụng xem đã loại bỏ được frontend/web và backend/web chưa

- Truy cập vào frontend với đường dẫn http://yii2advanced.local/ , bạn sẽ thấy chúng ta đã cấu hình thành công

Cấu hình loại bỏ frontend/web thành công

Hình 4. Cấu hình loại bỏ frontend/web thành công


Tương tự với backend, truy cập theo đường dẫn http://yii2advanced.local/admin sẽ được chuyển đến trang đăng nhập quản trị

Loại bỏ backend/web trên url yii2 framework

Hình 5. Loại bỏ backend/web trên url yii2 framework


Như vậy là ta đã cấu hình loại bỏ frontend/web và backend/web trên Yii2 framework thành công, Nếu chưa làm được hãy comment bên dưới mình sẽ giúp nhé.