Từ kinh nghiệm của 1 người đam mê tốc độ, đây là cách chuyển website wordpress của bạn từ http sang https mà không đụng đến những plugin hoạt động thường trực như là Really Simple SSL
Đặc điểm của cách làm này:
- Làm thủ công, mệt hơn, lâu hơn
- Ổ khoá https hoàn hảo, không chấm thang, không ảnh hưởng đến tốc độ website.
- Áp dụng cho shared hosting sử dụng web sever Litespeed hoặc Apache. Nếu là VPS chạy Nginx, bước 1 và bước 3 sẽ được thực hiện thông qua những dòng lệnh (cái này tuỳ thuộc vào hệ điều hành và cách bạn cài máy chủ web)
1. Cài đặt chứng chỉ SSL
Bạn có thể tự làm điều này từ cPanel hoặc bảng điều khiển web hosting của bạn.
Nếu không thể tự làm điều đó?
- Nhờ web host của bạn, hoặc nhân viên kĩ thuật của bạn
- SSL là miễn phí! – Cảm ơn LetsEncrypt. Đừng để bất cứ ai đánh lừa bạn nghĩ rằng bạn cần phải trả tiền cho nó! (Ừ thì, đúng là không phải tất cả các chứng chỉ SSL đều giống nhau và một số công ty lớn có thể thích loại SSL EV hiển thị tên thương hiệu trong URL. Nhưng hầu hết các trang web phổ thông không cần phải ngầu vậy)
2. Thay đổi URL WordPress sang HTTPS
Trong Settings > General
Ở 2 mục: “WordPress Address (URL)” và “Site Address (URL)”
Gõ đường dẫn có https
Nếu vì 1 lí do nào đó bạn không thể chỉnh sửa được bằng cách này, hãy chỉnh sửa file: “wp-config.php” theo hướng dẫn ở đây.
3. Áp dụng chuyển hướng HTTPS trong tập tin .htaccess
Nhắc lại 1 lần nữa, thao tác bên dưới chỉ áp dụng cho máy chủ web Apache và Litespeed. Còn Nginx, hầu như bước này đã thực hiện cùng lúc với bước 1.
Bạn sẽ chọn 1 trong 2 code bên dưới, ứng với lựa chọn của bạn cho đường dẫn có WWW hoặc không có WWW, thêm vào file .htaccess.
File .htaccess thường bị ẩn đi. Làm như hình bên dưới để hiện file ẩn. (thao tác này thực hiện trong mục Quản lý tệp tin (File Manager) của Cpanel
Chèn phía bên trên dòng #BEGIN WordPress
Không WWW (tất cả truy cập sẽ đến “https://domain.com”)
# BEGIN Redirects
RewriteEngine On
# 301 redirect www to non-www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
# 301 redirect to https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# END Redirects
Có WWW (tất cả truy cập sẽ đến “https:///www.domain.com”)
# BEGIN Redirects
RewriteEngine On
# 301 redirect to www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# 301 redirect to https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# END Redirects
4. Cập nhật URL trong Cơ sở dữ liệu
Đây là phần mà hầu hết mọi người đều lười biếng hoặc không biết cách thực hiện.
Và các plugin kiểu “Really Simple SSL” trở thành vật bất li thân để bắt buộc https luôn được chuyển hướng tới.
Nhưng, …
Nó sẽ luôn thực hiện chuyển hướng, chứ không giải quyết từ gốc rễ phải thay thế URL thực sự. Website của bạn sẽ chậm, và bắt buộc phải duy trì sử dụng plugin ấy liên tục.
Nên…
Cách tốt nhất là thực hiện cập nhật ngay bên trong Cơ sở dữ liệu để tất cả các liên kết nội bộ và URL sử dụng HTTPS gốc thay vì lãng phí tài nguyên máy chủ để thực hiện chuyển hướng.
Bên dưới là thao tác:
- Cài đặt plugin “Better Search Replace” (của Delicious Brains)
- Backup CSDL nếu chưa từng làm trước đó. (có thể dùng plugin Updraft Plus để sao lưu, nhắn cho mình để mình share)
- Đến Tools > Better search replace
Mục Search for, gõ “https:”
Mục Replace with, gõ: “https:”
Bôi đen tất cả các bảng, bỏ tick khỏi dòng: Run as dry run?
Click “Run Search/Replace”
Dùng xong, có thể Ngừng kích hoạt và Xoá Plugin.
Xong rồi. Https hoàn hảo, không bị chấm thang, không chạy thêm plugin thường trực nào, không làm chậm website đi.
Tăng tốc website wordpress đầy đủ mà đơn giản, dành cho người đam mê tốc độ nhưng không có bằng lái.
Bổ sung (tùy chọn)
Đăng ký HSTS Preload list
Cập nhật tháng 9/2021: HSTS sẽ trở thành ác mộng khi bạn di chuyển website sang hosting khác. Tóm lại: không nên đăng ký HSTS nữa.
- HTTP Strict Transport Security (HSTS) thông báo cho tất cả các người dùng rằng họ chỉ có thể kết nối với máy chủ web thông qua giao thức HTTPS
- HSTS Preload list sẽ đảm bảo website bạn buộc người dùng đến trang bảo mật https ngay lần đầu tiên họ truy cập vào.
Bước 1. Cài HSTS trên Cpanel
Mở tệp tin .htaccess
Thêm đoạn bên dưới vào cuối file:
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
Bước 2. Nộp đơn đăng ký HTTS Preload list
Truy cập trang web: https://hstspreload.org/
Gõ tên miền của mình vào check rồi Submit
em dùng code này mà HTTP_HOST nó ra unknow. chả biết sữa thế nào.
Replied toMinh Khánh
hello Khánh.
Là ông đang vướng ở bước 3 hả.
Tui chưa hiểu cái comment của ông cho lắm.
Replied tonguyenminhhung
em copy cái code Không WWW (tất cả truy cập sẽ đến “https://domain.com”)
lỗi host luôn.
Replied toMinh Khánh
lạ dữ ha. cần tui teamviewer làm lại xem bị sai sót chỗ nào hem. Tui thử 10 website liên tục chưa gặp lỗi gì. hì hì.
Kết bạn facebook nè: facebook.com/minhhung.meohoang.
Trước khi xài Cloudflare thì mình dùng Really Simple SSL, Sau khi học cách cấu hình Cloudflare rồi thì cấu hình trên Cloudflare thôi. Dễ vô cùng. Nhưng cũng cảm ơn bạn vì những cách này
Replied toSteve tai
mình nhớ không nhầm là để được dùng SSL của Cloudflare thì phải sử dụng CDN của nó.
Mà dùng cdn đôi khi lợi bất cập hại. cdn giống như nơi trung gian, nếu hosting ở xa người dùng thì cdn tốt. còn hosting đã đặt ở gần rồi thì cdn trở thành xấu, sẽ làm chậm website đi.
http://tungkhanh.com does not redireCt to https://tungkhanh.com
Lỗi này xửa thế nào khi mình vào được Web bằng https://tungkhanh.con rồi ạ.
Replied toTrần Văn Tùng
mình không hiểu ý bạn lắm. mình nhấn vào link thì thấy nó redirect từ http sang https rồi.
NGoài những cách trên còn có plugin nào hỗ trợ chuyển http -> https ko ạ. hoặc chuyển từ domain A sang Domain B. Em xin cám ơn
Replied toNguyên Phát
Nếu bạn thích dùng plugin thì có Really simple Ssl (chuyển http sang https) và
Safe Redirect Manage (chuyển domain này sang domain kia)
mình dùng Really Simple SSL vẫn báo lỗi content maxied :((
Replied toHAILII
Bạn áp dụng bước 4 trong bài để xử lý cái này nha.
mình vẫn chưa biết chuyển kiểu gì, cần phần mền gì à mn chỉ mình vs
Replied toCao Văn Lợi
cách này chỉ áp dụng cho hosting có phần mềm quản lý Cpanel và website chạy trên nền tảng WordPress thôi ạ.
xIN CHÀO,
eM MUỐN HỎI MỘT CHÚT LÀ WEB BÊN EM MỚI NHỜ MỘT BẠN NGƯỜI QUEN THAO TÁC CHUYỂN TỪ HTTP SANG HTTPS CHO. NHƯNG SAU KHI CHUYỂN XONG CÁC BÌNH LUẬN TRÊN WEB BỊ MẤT HẾT LUÔN. BẠN ĐÓ CŨNG KHÔNG BIẾT LÝ DO TẠI SAO.
KHÔNG BIẾT ANH CÓ BIẾT LÝ DO TẠI SAO LẠI NHƯ VẬY KHÔNG Ạ? VÌ CÁC BÌNH LUẬN BÊN EM TỪ TRƯỚC ĐẾN GIỜ KHÁ NHIỀU, ĐỂ MẤT HẾT NHƯ VẬY CŨNG TIẾC LẮM Ạ.
EM CẢM ƠN.
Replied toHồng vân
Mình đoán là bạn cài comment Facebook trên website phải không, vì khi mình search trên google tiếng anh thì thấy khá nhiều người gặp trường hợp tương tự.
Có 1 bài này hướng dẫn khá tận tình, bạn xem thử ha. (Bản thân mình thì chưa thử)
https://cognitiveseo.com/blog/13431/recover-facebook-shares-https/
Còn nếu là comment mặc định wordpress bị mất thì bạn khôi phục bản backup gần nhất rồi thực hiện lại việc chuyển hướng.
Replied tonguyenminhhung
Vâng, đúng là bên em cài bình luận facebook trên web. cảm ơn anh đã chia sẻ, em sẽ thử ạ.
Hi bạn,
Cài cái này rồi thì trường hợp mình muốn bật cloudflare được ko ?
Replied totin nguyen
bạn cài SSL của hosting rồi thì khi dùng Cloudflare bạn để off chỗ Mục SSL là được.
anh check hộ em con web ngthanhquang.com với, em làm cả 4 rồi nhưng vẫn không được
Replied toNguyễn Thành Quang
chạy ào ào mà pro
Chào bạn mình đã làm đc phần http qua https khi search trên website. Mình có cần làm thêm phần nào nữa ko trên hostting. Mình là content nên mấy vấn đề code này mình ko rành lắm. Mong bạn giải đap giúp mình.
Replied tothe rule of four
không biết bạn làm tới bước nào trong 4 bước rồi nhỉ
Nhìn thấy rườm rà anh he. Đa số mấy cái web trước em làm thì dùng cloudflare ssl hoặc trong hosting có let’s encrypt luôn, active chút xíu là được, nhưng bài viết của anh cũng rât tâm huyết, 1 vote
Replied toPCCC Thành Phố Mới
cloudflare ssl nhớ là phải bật đám mây màu cam (Proxy) lên mới xài SSL thì phải.
Cloudflare mình chỉ dùng làm DNS thôi, chứ bật proxy lên nó làm chậm website.
Đam mê tốc độ mà he he.