Hướng dẫn xoá đường dẫn public tại URL khi sử dụng Laravel

Sau khi cài đặt Laravel xong, bạn truy cập vào đường link trang web của bạn thì thấy đường dẫn (url) luôn có "/public" trong nó kiểu như "https://examples.com/public" trông rất khó chịu và không chuyên nghiệp phải không.


Vậy làm cách nào để triệt sản cái public ấy đi cho url của bạn nó đẹp hơn. Dưới đây là cách giúp bạn triệt sản cái thể loại mà bạn muốn nó biến mất khỏi mắt mình.

Chắc bạn không còn xa lạ gì với file .htaccess phải không, đây là một file cực kỳ quan trọng và có công lực siêu mạnh, nó có thể làm những điều hết sức vĩ đại với chỉ vài dòng code đơn giản. Bạn chỉ cần chỉnh sửa một chút xíu tại file .htaccess là có thể làm mọi thứ thay đổi theo ý bạn.

Ở trong thư mục public tại laravel mà bạn cài đạt sẽ có một file .htaccess bạn mở nó lên và copy hết nội dung của nó lại. Nếu bạn không nhìn thấy .htaccess ở đâu thì có thể nó bị ẩn và bạn cần hiện nó lên để thấy được.

Bạn quay lại thư mục gốc (root) và tạo một file .htaccess rồi dán nội dung vừa copy ở trên vào thêm vào đó hai dòng code sau đâu để giúp bạn chạy trang web mà không cần nhìn thấy cái public đó nữa.

RewriteCond %{REQUEST_URI} !^/public/

RewriteRule ^(.*)$ /public/$1 [L,QSA]

Hai dòng code thần thấy đơn giản vậy thôi chứ nó sẽ làm bạn thoả mãn hơn bào giờ hết.

Nếu không muốn rườm ra thì dưới đây là code của cái file .htaccess, bạn thích thì có thể copy vào luôn mà không cần phải vòng vo tam quốc nhé.

<IfModule mod_rewrite.c>

    <IfModule mod_negotiation.c>

        Options -MultiViews -Indexes

    </IfModule>


    RewriteEngine On


    # Handle Authorization MemberHeader

    RewriteCond %{HTTP:Authorization} .

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]


    # Redirect Trailing Slashes If Not A Folder...

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_URI} (.+)/$

    RewriteRule ^ %1 [L,R=301]


    # Remove public URL from the path

    RewriteCond %{REQUEST_URI} !^/public/

    RewriteRule ^(.*)$ /public/$1 [L,QSA]


    # Handle Front Controller...

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteRule ^ index.php [L]

</IfModule>



Đăng nhận xét (0)
Mới hơn Cũ hơn