Asked May 2nd, 8:34 AM 132 0 1
  • 132 0 1
0

Sub-domain cho Laravel

Share
  • 132 0 1

Em xin chào mọi người ạ,

Hiện tại em đang làm một dự án sử dụng Framework Laravel 5.6, em đang gặp khó trong vấn đề sử dụng sub-domain cho nó ạ. Ý tưởng là thêm cái sub "m." vào example.com, vẫn dùng chung 1 core với example.com chỉ đơn giản là thay đổi giao diện hiển thị và thay đổi các controller sử dụng. Em đã làm theo hướng dẫn trên document của Laravel 5.6 và ra được code như này

Route::domain('m.example.com')->group(function () {
    Route::get('/', function () {
        return 'a';
    });
});

Về lý thuyết, đúng ra thì nó phải trả lại "a" hiển thị ở trên trình duyệt đúng không ạ?. Nhưng đây là cái mà em nhận được sau khi nhập domain ấy lên trên thanh địa chỉ

** trường hợp trên là khi em chưa add sub-domain vào trong DirectAdmin ** Khi em add sub-domain vào DirectAdmin, thì nó hiển thị thư mục "m" và chỉ thực thi các file nằm trong thư mục đó, chứ không có thông qua routes/web.php của laravel ạ.

Không biết em có làm gì sai, hay làm thiếu bước nào không ạ?.

Mong các anh chị cao nhân chỉ giáo, và hỗ trợ em fix lỗi này ạ!.

Em cảm ơn mọi người ạ!.

1 ANSWERS


Answered May 2nd, 9:13 AM
+2
  1. Bạn trỏ toàn bộ sub domain (hoặc là chỉ m.example.com) về chung host của thằng example.com
  2. Bạn thêm ServerAlias cho cái example.com vào trong cấu hình apache của nó, để bất cứ request tới sub-domain sẽ đều vào web example.com (mình đoán bạn đang dùng Apache):
ServerAlias m.example.com

# Hoặc chấp nhận bất kỳ sub-domain nào:
ServerAlias *.example.com
  1. Khi đảm bảo 2 bước trên thì việc còn lại là laravel xử lý như bạn đang làm và web sẽ hiện ra như bạn đang kỳ vọng.
Share
KienHoanh Le @le.kienhoanh
May 2nd, 9:34 AM

Cảm ơn anh đã dành thời gian ạ!.

Em đã làm theo hướng dẫn của anh, nhưng hiện giờ, khi vào thằng domain http://m.example.com thì nó vào được, nhưng source thì nó đang lấy từ thằng http://example.com bao gồm và view controller.

Hình như nó bỏ qua web.php luôn hay sao đấy ạ @@.

+1
| Reply
Share
Nguyễn Hữu Kim @huukimit
May 3rd, 3:39 AM

@le.kienhoanh

khi vào thằng domain http://m.example.com thì nó vào được, nhưng source thì nó đang lấy từ thằng http://example.com bao gồm và view controller.

Ơ?? Mình tưởng bạn muốn như này mà nhỉ:

thêm cái sub "m." vào example.com, vẫn dùng chung 1 core với example.com

0
| Reply
Share
KienHoanh Le @le.kienhoanh
May 3rd, 7:35 AM

@huukimit Cảm ơn anh đã dành thời gian,

Nhưng em có làm 1 cái route cho nó như ở trên bài ạ. Và làm theo cách trên thì em có thể vào được trang, nhưng nó không đọc route ạ ... 😦

0
| Reply
Share
Nguyễn Hữu Kim @huukimit
May 6th, 1:23 AM

@le.kienhoanh Bạn đang khai báo route đấy ở đâu? Có thể route / cho sub-domain kia bị trùng với cái route / của trang example.com nên nó đang dùng route / của example.com. Bạn thử đổi path của cái sub-domain rồi test lại xem có chạy vào route như mong muốn không. :-?

0
| Reply
Share