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

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.

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.

AZDIGI Tutorial
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:

AZDIGI Tutorial
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:

AZDIGI Tutorial
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:

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

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

AZDIGI Tutorial
Redirect /index.html /new/

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

AZDIGI Tutorial
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:

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

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

AZDIGI Tutorial
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:

AZDIGI Tutorial
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.

AZDIGI Tutorial
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:

AZDIGI Tutorial
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:

AZDIGI Tutorial
RewriteEngine on
RewriteRule ^$ /subdir1/ [L]

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

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

7. Xóa www trong URL:

AZDIGI Tutorial
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 .

AZDIGI Tutorial
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:

AZDIGI Tutorial
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:

AZDIGI Tutorial
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.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *