Trang WordPress của mình khi cài đặt bằng OpenLiteSpeed Docker thì mặc định có đường dẫn tĩnh (static URL) theo cấu trức “/YYYY/MM/DD/Title” (Ví dụ: https://workleast.com/2024/03/18/bai-mau). Tuy nhiên kiểu cấu trúc này quá dài dòng và không được tối ưu hoá công cụ tìm kiếm SEO. Do đó, mình quyết định chuyển thành cấu trúc “/Title” (Ví dụ: https://workleast.com/bai-mau) để tối ưu hoá SEO.
Việc thay đổi cấu trúc URL trang WordPress sẽ ảnh hưởng đến kết quả xếp hạng (ranking) trên các công cụ tìm kiếm, xin cân nhắc trước khi làm.
Lưu ý
Dưới đây là các bước mình đã thực hiện để thay đổi cấu trúc URL trang WordPress của mình.
1. Điều kiện tiên quyết
Để có thể thực hiện các bước bên dưới, yêu cầu cần thoả các điều kiện sau:
- Đã có trang WordPress đang hoạt động hoặc tham khảo bài xây dựng trang WordPress bằng OpenLiteSpeed Docker và Cloudflare Tunnel
- Đã sao lưu lại toàn bộ trang WordPress trước khi thực hiện các thay đổi
2. Đổi sang cấu trúc URL mới
Từ trang “wp-admin”, vào menu “Cài đặt”, chọn “Đường dẫn tĩnh”
Sau đó chọn “Tiêu đề bài viết” rồi nhấn nút “Lưu thay đổi” ở cuối trang để lưu lại.
3. Sửa liên kết trong các bài viết sang URL mới
Trong hầu hết các bài viết của mình đều có sử dụng các liên kết đến các bài viết có liên quan khác. Để cập nhật các liên kết này sang cấu trúc URL mới, mình cần sử dụng thêm plugin tên “Search Regex” để tìm và thay thế cac liên kết trong có sở dữ liệu.
Sau khi kích hoạt, nhấn vào menu “Công cụ” rồi chọn “Search Regex”
- Search: nhập vào “\/([0-9]{4})\/([0-9]{2})\/([0-9]{2})\/”
- Flags: chọn “Regular Expression”
- Replace: nhập vào “/”
Để kiểm tra xem plugin có thể tìm kiếm các liên kết cũ có thành công không, mình chọn vào “View Columns” rồi đánh dấu chọn “Content” rồi nhấn nút “Search”.
Nếu thấy hiện ra như trên có nghĩa các cài đặt của mình đã đúng và plugin đã có thể nhận dạng và thay thế các URL cũ trong các bài viết.
Mình tiếp tục nhấn nút “Replace All” để tiến hành thay thế là xong.
4. Chỉnh sửa file .htaccess để chuyển hướng URL cũ
Vì mình đã sử dụng cấu trúc URL cũ cho trang WordPress của mình trong thời gian khá dài nên các công cụ tìm kiếm như Google hay Bing đã lập chỉ mục (index) đến những bài viết của mình bằng các URL cũ. Ngoài ra các URL này cũng có thể đã được trích dẫn ở trên các trang mạng khác. Do đó, mình cần cập nhật lại file .htaccess trên máy chủ web để chuyển hướng các URL cũ sang URL mới, nếu không thì khi người dùng nhấn vào các URL cũ sẽ bị báo lỗi “không tìm thấy trang”. Việc này có thể được thực hiện như sau:
Do mình đang sử dụng OpenLiteSpeed Docker để chạy trang WordPress này nên các câu lệnh trong phần này chỉ có thể áp dụng cho OpenLiteSpeed Docker. Nếu sử dụng các máy chủ web khác như Apache hay Nginx thì có thể tham khảo công cụ hỗ trợ chuyển đổi cấu trúc URL của Yaost SEO
Bài này mình sử dụng tên miền “workleast.com” làm ví dụ, xin thay đổi để phù hợp với trang của bạn
Lưu ý
Đăng nhập vào server bằng SSH, sau đó thực hiện lệnh sau:
$ cd ols-docker-env
$ nano sites/workleast.com/html/.htaccess
Thêm vào đầu file “.htaccess” các dòng lệnh sau:
# Redirect old permanent URL to new URL
RewriteRule ([0-9]{4})\/([0-9]{2})\/([0-9]{2})\/(.*) https://workleast.com/$4 [R=301,L]
Sau đó nhấn Ctrl-X rồi nhấn Y để lưu lại.
Khởi động lại OpenLiteSpeed bằng lệnh:
$ docker compose exec litespeed /usr/local/lsws/bin/lswsctrl restart
Chúc bạn thành công!