Tổng hợp chuyển hướng bằng .htaccess

Thứ bảy - 30/03/2024 07:22
Nếu bạn đang muốn chuyển hướng một, hoặc nhiều đường dẫn của website thì bài viết tổng hợp chuyển hướng bằng .htaccess này sẽ rất hữu ích đối với bạn.
Tổng hợp chuyển hướng bằng .htaccess

Lưu ý: Nếu bạn đang sử dụng WordPress thì một số chuyển hướng sẽ không hoạt động vì mặc định WordPress sẽ sử dụng các nguyên tắc của riêng nó. Và giải pháp sử dụng WordPress đó là bạn nên sử dụng plugin Redirection.

I. Tệp tin .htaccess là gì?

.htaccess là một tệp cấu hình để sử dụng trên các Web Server có hỗ trợ như Apache, LiteSpeed, OpenLiteSpeed ..vv..

Khi tệp .htaccess được đặt trong một thư mục mã nguyồn website, thì tệp .htaccess sẽ được thực thi bởi Web server. Các tệp .htaccess này có thể được sử dụng để thay đổi cấu hình của phần mềm Web Server nhằm bật/tắt chức năng và tính năng bổ sung mà phần mềm Web Server cung cấp.

II. Tổng hợp chuyển hướng bằng .htaccess
Các ví dụ dưới đây có thể được thêm vào tệp .htaccess tùy theo nhu cầu của bạn. Chỉ cần đảm bảo điều chỉnh đường dẫn thực đến tệp để tệp .htaccess biết nó nằm ở đâu. Ngoài ra, nếu bạn thấy tên miền example.com , hãy thay đổi tên miền này thành tên miền của bạn.

1. Chuyển hướng tất cả các URL
Dòng cấu hình sau sẽ chuyển hướng tất cả các URL trên trang web hiện tại của bạn đến trang web mới.

Redirect 301 / https://example.com/


2. Chuyển hướng đến một URL
Sử dụng Redirect trong tệp .htaccess cho phép bạn chuyển hướng truy cập của người dùng từ trang cũ sang trang mới mà không cần phải giữ lại trang cũ. 
Ví dụ: Nếu bạn sử dụng index.html làm tệp chỉ mục của mình và sau đó đổi tên index.html thành home.html, bạn có thể thiết lập chuyển hướng để đưa người dùng từ index.html đến home.html với đoạn mã sau:

Redirect /path/to/old/file/index.html /path/to/new/file/home.html


Nếu bạn muốn chuyển hướng sang tệp home.html của website khác thì dùng mã bên dưới:

Redirect /path/to/old/file/index.html https://www.example.com/new/file/home.html


3. Một số ví dụ về chuyển hướng bằng .htaccess
Chuyển hướng từ một thư mục sang một tệp HTML:

RedirectMatch 301 ^/blog/about /blog/about.html


Chuyển hướng tệp tin index.html sang một thư mục khác:

Redirect /index.html /new/

Chuyển hướng từ tệp index.html sang tệp default.html:

Redirect /index.html /default.html

Chuyển hướng một thư mục nội bộ /private riêng tư đến một thư mục /private của trang web khác:

Redirect /private/ https://www.example.com/private/

Tải tệp .gif từ một trang web khác:

Redirect /img/logo.gif https://www.example.com/images/logo.gif

Chuyển hướng thông báo lỗi 404 về lại trang chủ website:

ErrorDocument 404 https://example.com/

Chuyển hướng một thư mục cũ sang thư mục mới:

Điều này chuyển hướng các tệp trong thư mục cũ /blog/archives đến một thư mục mới /archives.

RewriteRule ^blog/archives/(.*)$ /newarchives/$1 [R=301,NC,L]

4. Chuyển hướng các trang không tồn tại đến index.php

Nếu khách truy cập cố gắng truy cập một trang không tồn tại, họ sẽ gặp lỗi 404. Thay vào đó, bạn có thể chuyển hướng bất kỳ yêu cầu nào đến một trang không tồn tại đến tệp index.php của bạn (hoặc bất kỳ tệp index nào khác) bằng cách thêm mã sau vào .htaccess của bạn:

Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Nếu trang index của bạn không phải là index.php mà là index.html hoặc trang khác, chỉ cần thay đổi dòng cuối cùng thành tệp index thực tế của bạn. Sau đó, khách truy cập được chuyển hướng trở lại trang chủ của bạn.

5. Chuyển hướng thư mục chính sang thư mục con:

Ví dụ này chuyển hướng URL của miền chính đến bất kỳ thư mục con nào. Trong ví dụ này, nó tự động tải example.com/subdir1 khi bạn nhập example.com trên trình duyệt:

RewriteEngine on
RewriteRule ^$ /subdir1/ [L]

6. Chuyển hướng sang www:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) https://www.example.com/$1 [R=301,L]

7. Xóa www trong URL:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com
RewriteRule (.*) https://example.com/$1 [R=301,L]

8. Viết lại một URL sang một URL khác:

Ví dụ này viết lại một URL thành một URL khác. Điều này sẽ viết lại example.com/1.html thành example.com/abc.php?id=1 .

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([0-9]+).html /abc.php?id=$1 [QSA,L]

9. Viết lại các liên kết không tồn tại về trang chủ:

Phần sau chuyển hướng tất cả các liên kết đến các tệp hoặc thư mục không tồn tại đến index.php. Tuy nhiên, nếu tệp hoặc đường dẫn có tồn tại, nó sẽ truy cập được bình thường:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

10. Chuyển hướng http sang https:

RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUESTURI} [R=301,L]


III. Tổng kết
Hy vọng các ví dụ chuyển hướng bằng .htaccess này sẽ giúp các bạn xử lý được các vấn đề của mình. Chúc các bạn thực hiện thành công.

Tổng số điểm của bài viết là: 5 trong 1 đánh giá

Xếp hạng: 5 - 1 phiếu bầu
Click để đánh giá bài viết

Tên miền Việt Nam

Tên miền Việt Nam Lệ phí đăng ký(1) (không chịu thuế) Phí duy trì(2) (không chịu thuế) Dịch vụ tài khoản quản trị tên miền năm đầu (chưa bao gồm thuế VAT) Dịch vụ tài khoản quản trị tên miền năm tiếp theo (chưa bao gồm thuế VAT) Tổng tiền năm...

Thống kê
  • Đang truy cập22
  • Hôm nay2,579
  • Tháng hiện tại5,272
  • Năm hiện tại649,346
  • Tổng lượt truy cập8,726,844
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây