Học Wordpress

Tuỳ biến chuyển hướng 301 chuyên nghiệp trong WordPress với SEO Redirection

90

Trong thời gian hỗ trợ các độc giả tại trang Hỏi đáp WordPress thì mình thấy nhu cầu cần chuyển hướng truy cập từ đường dẫn cũ sang đường dẫn mới rất nhiều. Ví dụ như có bạn đổi cấu trúc đường dẫn tĩnh (permalink) trong WordPress nên sẽ cần làm tự động chuyển hướng các lượt truy cập vào đường dẫn cũ sang đường dẫn mới.

Khi tạo ra các yêu cầu chuyển hướng đường dẫn thì bạn hầu như phải dùng đến tập tin cấu hình webserver (chẳng hạn như .htaccess trong Apache) nhưng việc viết các cấu hình trong tập tin này không phải ai cũng biết.

Nhưng rất may mắn là nếu bạn đang dùng WordPress thì có thể tạo ra các yêu cầu chuyển hướng đường dẫn dễ dàng nhưng có khả năng tuỳ biến cao với plugin SEO Redirection. Và đây cũng là một trong các plugin phải dùng của thachpham.com.

Có thể bạn thích: Sửa cấu trúc permalink giữ nguyên thứ hạng

Các chức năng của SEO Redirection

Bảng điều khiển của SEO Redirection

Bảng điều khiển của SEO Redirection

SEO Redirection có nhiều chức năng như:

  • Hỗ trợ 3 kiểu chuyển hướng là 301, 302307. Nếu bạn muốn chuyển hướng vĩnh viễn thì dùng 3o1 nhé.
  • Hỗ trợ tuỳ chỉnh chuyển hướng dựa theo trang hoặc regular expression.
  • Có nút tạo chuyển hướng nhanh khi sửa Post/Page.
  • Theo dõi lịch sử chuyển hướng trên website.
  • Hỗ trợ wildcard redirect (*).
  • Theo dõi các trang 404 và tạo chuyển hướng từ các trang 404.
  • Tạo chuyển hướng cho trang lỗi 404.
  • Không sửa tập tin cấu hình webserver, nên nó hoạt động trên tất cả các webserver khác nhau từ Apache, NGINX đến LiteSpeed.
  • Có bản pro nhiều tính năng hơn mà bạn có thể mua tại đây. Mình vẫn sử dụng bản miễn phí và thấy rất tốt.

Đối với các tính năng trên, đặc biệt là có hỗ trợ regex nên hầu như bạn có thể tạo ra các yêu cầu chuyển hướng rồi.

Cách tạo một chuyển hướng đơn giản

Chẳng hạn bạn cần chuyển hướng từ địa chỉ http://domain.com/old-page.html sang http://domain.com/new-page.html thì bạn có thể tạo chuyển hướng với SEO Redirection như hình dưới đây.

seo-redirection-simple-redirect

Nếu bạn muốn chuyển sang một domain khác thì ở phần Redirect to bạn có thể nhập cả domain mới vào, ví dụ như http://new-domain.com/new-page.html.

Chuyển hướng nội dung trong tầng thư mục

Chẳng hạn bây giờ mình có các địa chỉ dạng https://thachpham.com/old-folder/page.html và cần chuyển hướng sang cấu trúc https://thachpham.com/new-folder/page.html thì mình sẽ tạo ra như sau:

Chuyển hướng dữ liêu theo thư mục

Chuyển hướng dữ liêu theo thư mục

Chuyển hướng với RegEx

seo-redirection-regex

Nếu bạn đã có kiến thức về RegEx thì có thể sử dụng nó để gom các đường dẫn cần chuyển hướng dựa vào quy tắt RegEx.

Lời kết

Cách sử dụng plugin này cũng chỉ có như vậy thôi nhưng mình tin là nó sẽ giúp bạn thao tác việc chuyển hướng trong website dễ dàng hơn mà không cần phải đụng vào các tập tin cấu hình webserver nữa vì sẽ dễ gặp lỗi.

Học Wordpress

Sửa cấu trúc permalink giữ nguyên thứ hạng

<p>Các bạn đang sử dụng WordPress thì cũng đã biết rõ rằng tính năng Permalinks trong WordPress sẽ giúp chúng ta có các cấu trúc liên kết thân thiện hơn thay vì sử dụng cấu trúc liên kết động kiểu <code>http://domain.com/?p=xx</code>, thay vào đó ta có thể sử dụng cấu trúc liên kết như thachpham.com chẳng hạn bằng cách sử dụng Permalink.</p>
47

Các bạn đang sử dụng WordPress thì cũng đã biết rõ rằng tính năng Permalinks trong WordPress sẽ giúp chúng ta có các cấu trúc liên kết thân thiện hơn thay vì sử dụng cấu trúc liên kết động kiểu http://domain.com/?p=xx, thay vào đó ta có thể sử dụng cấu trúc liên kết như thachpham.com chẳng hạn bằng cách sử dụng Permalink.

Nhưng chẳng hạn bạn đang sử dụng một cấu trúc permalink nào đó mà thay đổi lại thì tất cả liên kết cũ sẽ bị lỗi 404. Điều này có nghĩa là, toàn bộ thứ hạng cũ của bạn trên các máy tìm kiếm như Google, Bing đều sẽ bị giảm thứ hạng do liên kết không tồn tại, vì nó đã đánh chỉ mục (index) dựa vào cấu trúc liên kết cũ.

Làm sao đổi cấu trúc permalink giữ nguyên thứ hạng?

Thứ hạng sẽ bị mất khi trang đó bị lỗi 404 (không tìm thấy trang), nên nếu bạn muốn giữ nguyên thứ hạng của một liên kết nào đó hoặc muốn chia sẻ thứ hạng này cho liên kết khác thì bạn phải sử dụng kỹ thuật 301 redirect (chuyển hướng vĩnh viễn).

Nên biết: Lỗi 404 giết chết website bạn thế nào?

Ví dụ trên Google mình có liên kết A đang giữ top 1 và nay mình muốn chỉ định liên kết B sẽ lên top 1 thay cho liên kết A thì mình sẽ phải sử dụng 301 redirect để chuyển hướng truy cập từ liên kết A sang liên kết B.

Nếu bạn cần chuyển hướng liên kết của một trang nào đó riêng lẻ thì có thể sử dụng tính năng 301 Redirection có trong SEO by Yoast hoặc plugin SEO Redirection mà mình đã giới thiệu.

Thế nhưng, giả sử blog bạn có 1000 bài viết có cùng cấu trúc nay bạn cần đổi cấu trúc thì không lẽ bạn làm thủ công cho 1000 bài viết đó, một giải pháp không hề dễ dàng xíu nào. Nhưng bạn đừng lo lắng, chúng ta có cách để đặt 301 redirection từ cấu trúc permalink cũ sang cấu trúc permalink mới với plugin Permalink Redirect.

Chuyển hướng permalink cũ sang permalink mới

Trước tiên bạn tải plugin Permalink Redirect về máy và cài đặt bằng cách vào Plugins -> Add New -> Upload.

Nếu bạn đã từng sử dụng tính năng Permalinks thì bạn vào phần Settings -> Permalinks sẽ thấy các cấu trúc permalink được khai báo thông qua từ khoá như thế này.

Tùy chỉnh permalinks cho WordPress

Ở phần Custom Structure, bạn sẽ thấy cấu trúc permalink hiện tại của mình. Giả sử mình sẽ cần đổi sang cấu trúc mới là /%postname%.html (đã thiết lập ở Settings) thì mình sẽ đặt redirect cho plugin Permalink Redirect như sau (Settings -> Permalink Redirect).

Permalink_Redirect_Manager

Và bây giờ bạn có thể thử vào cấu trúc permalink cũ sẽ thấy nó tự chuyển hướng về cấu trúc permalink mới. Rất dễ dàng phải không nào?

Học làm SEOKinh nghiệm SEO

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

302

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.