Lê Hoài Thương
Tích Cực
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.
id="ftoc-heading-1" class="ftwp-heading">
.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.
id="ftoc-heading-2" class="ftwp-heading">
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.
id="ftoc-heading-3" class="ftwp-heading">
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 / Example Domain
id="ftoc-heading-4" class="ftwp-heading">
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
id="ftoc-heading-5" class="ftwp-heading">
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 Example Domain
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]
id="ftoc-heading-6" class="ftwp-heading">
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.
id="ftoc-heading-7" class="ftwp-heading">
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]
id="ftoc-heading-8" class="ftwp-heading">
RewriteEngine On RewriteCond %{HTTP_HOST} ^example.com RewriteRule (.*) https://www.example.com/$1 [R=301,L]
id="ftoc-heading-9" class="ftwp-heading">
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.example.com RewriteRule (.*) https://example.com/$1 [R=301,L]
id="ftoc-heading-10" class="ftwp-heading">
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]
id="ftoc-heading-11" class="ftwp-heading">
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]
id="ftoc-heading-12" class="ftwp-heading">
RewriteEngine on RewriteCond %{HTTPS} !=on [NC] RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUESTURI} [R=301,L]
id="ftoc-heading-13" class="ftwp-heading">
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.
Xem tiếp...
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ì?
id="ftoc-heading-1" class="ftwp-heading">
.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
id="ftoc-heading-2" class="ftwp-heading">
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
id="ftoc-heading-3" class="ftwp-heading">
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 / Example Domain
2. Chuyển hướng đến một URL
id="ftoc-heading-4" class="ftwp-heading">
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
id="ftoc-heading-5" class="ftwp-heading">
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 Example Domain
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
id="ftoc-heading-6" class="ftwp-heading">
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:
id="ftoc-heading-7" class="ftwp-heading">
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:
id="ftoc-heading-8" class="ftwp-heading">
RewriteEngine On RewriteCond %{HTTP_HOST} ^example.com RewriteRule (.*) https://www.example.com/$1 [R=301,L]
7. Xóa www trong URL:
id="ftoc-heading-9" class="ftwp-heading">
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:
id="ftoc-heading-10" class="ftwp-heading">
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ủ:
id="ftoc-heading-11" class="ftwp-heading">
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:
id="ftoc-heading-12" class="ftwp-heading">
RewriteEngine on RewriteCond %{HTTPS} !=on [NC] RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUESTURI} [R=301,L]
III. Tổng kết
id="ftoc-heading-13" class="ftwp-heading">
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.
Xem tiếp...