Lưu trữ hình ảnh trên subdomain trong WordPress.
Nếu để ý, chắc bạn sẽ thấy tất cả link hình ảnh trên blog WP Căn bản đều có dạng static.wpcanban.com phải không nào? Nhiều độc giả thắc mắc liệu có phải chúng tôi đang sử dụng CDN hay không? Câu trả lời là không nhé. Thực ra, tôi đã chuyển thư mục uploads WordPress lên lưu trữ trên subdomain. Do đó, link của các tập tin được upload (trong đó có cả link hình ảnh) sẽ có dạng subdomain thay vì domain chính. Tác dụng của thủ thuật này là giảm số lượng request trực tiếp đến domain chính, cân bằng tải, làm tăng tốc độ load dữ liệu. Nếu bạn cũng đang muốn làm điều tương tự thì ngay sau đây là hướng dẫn chi tiết.
Tham khảo thêm:
Hướng dẫn lưu trữ hình ảnh trên subdomain
1. Việc đầu tiên các bạn cần làm chính là backup dữ liệu của blog/ website (cả database lẫn mã nguồn). Điều này sẽ giúp bạn nhanh chóng khôi phục blog/ website về trạng thái ban đầu trong trường hợp xảy ra sai sót khi thao tác.
2. Tạo một sudomain cho domain chính, chẳng hạn như img.domain.com.
Một thư mục có tên là img sẽ được tự động tạo ra trong thư mục public_html.
3. Trỏ subdomain này về host, sử dụng IP giống với IP của domain chính.
4. Truy cập vào File Manager của cPanel/ DirectAdmin hoặc FTP, copy (hoặc move) toàn bộ nội dung có trong thư mục uploads (nằm trong đường dẫn wp-content/uploads/) sang thư mục img đã được tạo ở bước 2.
5. Truy cập vào phpMyAdmin, lựa chọn đúng database của blog/ website. Click vào nút Query trên menu ngang.
6. Copy và paste đoạn code sau đây vào khung SQL query on database… và click nút Submit Query.
Lưu ý: đổi domain.com thành domain của bạn. Chẳng hạn như:
7. Lặp lại tương tự bước 6, tuy nhiên, lần này, hãy sử dụng code sau đây:
Nhớ thay domain.com bằng domain của bạn nhé.
8. Quay trở lại giao diện chính của database, click vào mục Search.
9. Nhập từ path vào khung Words or values to search for (wildcard: “%”). Tick chọn table options trong mục Inside tables.
Click vào nút “Go” để bắt đầu quá trình tìm kiếm. Kết quả sẽ có dạng như hình bên dưới. Hãy click vào nút Browser để xem danh sách đầy đủ.
10. Hãy chú ý vào 2 mục upload_path và upload_url_path trong danh sách kết quả. Click vào nút Edit và chỉnh sửa thông số option_value cho phù hợp với blog/ website của bạn. Xem ví dụ trong hình bên dưới.
11. Mở file .htaccess trong thư mục gốc của WordPress ra, thêm đoạn code sau vào trên cùng và lưu lại.
Lưu ý: thay domain.com bằng domain của bạn.
Thao tác này sẽ giúp redirect những hình ảnh cũ đã được công cụ tìm kiếm index trước đó sang link mới, tránh bị lỗi 404. Cuối cùng, hãy xóa cache trình duyệt và cache blog/ website (nếu bạn có sử dụng plugin tạo cache) và xem kết quả nhé. Chúc các bạn thành công!
Trên đây là các bước chi tiết giúp lưu trữ hình ảnh trên subdomain. Nếu bạn có bất cứ thắc mắc hay khó khăn nào, xin vui lòng gửi vào khung bình luận bên dưới để được hỗ trợ. Bạn biết phương thức khác đơn giản hơn để lưu trữ hình ảnh trên subdomain? Đừng quên chia sẻ nó với chúng tôi.
Nếu bạn thích bài viết này, hãy subscribe blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất qua email nhé. Cảm ơn rất nhiều. :)
Trong thư mục Upload của mình có rất nhiều thư mục khác,trong đó có 2 thư mục là năm 2017 và 2018 là chứa tất cả hình ảnh của bài viết,thì mình chỉ cần move 2 thư mục này thôi hay là move hết tất cả thư mục trong Upload vậy nhĩ? (Như hình dưới)
https://i.imgur.com/dJpjuIo.png
Đã move thì move tất cả dữ liệu bên trong thư mục uploads nhé.
Ok,vậy mình move luôn thư mục uploads xem sao.
Không được bị gì rồi,vô bài viết thì hình ảnh vẫn hiển thị bình thường,nhưng hình ảnh thumbnail ở ngoài trang chủ và ở trong các danh mục của từng bài viết thì bị mất.Hình như sử dụng plugin WPBakery Page Builder không làm được hay sao ấy. Vô web xem giúp mình với huhuhu
Làm được rồi,do ở bước 6 với 7 thay domain bị thiếu nên nó không hiển thị hình ảnh đầy đủ.Thanks ^^!
À cho hỏi là làm sao để bảo vệ các thư mục chưa hình ảnh không cho người khác truy cập sau khi đã move subdomain vậy nhĩ? ví dụ người khác giờ chỉ cần vào subdomain: http://img.domain.com/uploads là ra hết các hình ảnh của mình
Site của bạn chạy web server gì?
sv Lite speed bạn
Tạo 1 file .htaccess trong thư mục
uploads
rồi chèn code này vào:Options All -Indexes
Hôm bữa mình có tạo file htaccess để chuyển link sang SSL rồi giờ chèn Options All -Indexes vào thêm nữa là được hay là vào thư mục có chứa hình ảnh rồi tạo htaccess bạn nhĩ?
File .htaccess kia nằm trong thư mục gốc, ngang hàng với wp-config.php. File .htaccess mình bảo bạn tạo nằm trong thư mục uploads của subdomain cơ mà.
uhm thì mình đang nói trong subdomain mà
ok thank bạn,à xóa giúp mình cái bình luận lúc 15:52 cho mình nhé.Thanks!
Làm cách này chủ yếu là giảm số lượng truy vấn Requests để site được nhẹ hơn vì site mình link hình ảnh chiếm tới 80%,nhưng sau khi làm và check trên tools.pingdom.com thì thấy số lượng Requests và dung lượng site vẫn giữ nguyên 5,3mb. Có cách nào khắc phục không Admin ơi.
Bạn nén ảnh bằng plugin chưa? Sử dụng định dạng ảnh WebP chưa?
Sau khi xử lý ảnh bằng photoshop thì dùng trang https://tinypng.com/ để nén ảnh rồi mới up lên WP là đã có plugin Compress JPEG & PNG images nén tự động rồi,mình toàn ảnh dạng.jpg chứ chưa dùng dạng.webp
Sao không dùng EWWW Image Optimizer để nén và tạo định dạng WebP luôn. Dùng cái Compress JPEG & PNG images đó làm gì. Nó đâu hẳn là miễn phí. Cũng không hỗ trợ tạo WebP.
Lúc trước dùng EWWW Image Optimizer rồi,sau 3 tháng xài nó thì rất tệ,không nén được bao nhiêu nén rất lâu,viết 1 bài up hình lên thì chờ dài cả cổ và cũng không chuyển sang được webp nên mới xóa nó rồi cài Compress JPEG & PNG images xài tạm,nói chung plugin nén ảnh từ trước giờ mình đều xài qua hết rồi.
Nãy mình có di chuyển thử cái subdomain ra khỏi thư mục Public_html,cho nó nằm hẳn luôn ở ngoài thư mục gốc Home và tất nhiên các thông số ở phpMyAdmin mình cũng sẽ thay đổi sao cho phù hợp với thư mục gốc Home đó với hy vọng khi load site nó sẽ không Requests link hình ảnh nhằm giảm link Requests nhưng khi check thì nó vẫn Requests link ảnh bình thường.Hình như cái gì liên quan tới domain chính là nó Requests hết hay sao ấy.Đang nghiên cứu thêm cách khác mà chưa nghĩ ra.
Bạn đang kể chuyện 3000 năm trước Công Nguyên à? =)) EIO giờ ngon lắm rồi. Là plugin nén ảnh miễn phí tốt nhất dành cho nền tảng WordPress. :P
Cũng có thể là do server host cũng nên,đang xài host của PAVN gần 1 năm rồi,hơn 200k/tháng mà xài cảm thấy sao sao ấy: https://i.imgur.com/TiHbOjo.png
Định ngưng bên nó để xài bên khác mà lúc trước mua host thì mua luôn domian đi kèm với host rồi,giờ nếu ngưng không sử dụng host bên nó nữa thì cái domain đó mình còn xài được không nhĩ?
Dùng host của mấy “ông lớn” ở VN thì chất lượng cũng chỉ đến mức đó thôi. :P Chuyển qua bên mình dùng thử đi. Rồi sẽ biết thế nào mới được gọi là “WordPress Hosting”. Cứ ra 1 cái dịch vụ rồi gắn cho nó mác “WordPress Hosting” thì ai mà chả làm được. Domain và host là 2 thành phần độc lập, chả liên quan hay ràng buộc gì nhau cả.
Bên ông là xài host của nhà cung cấp nào vậy?
Chắc bạn mới vào blog của mình dạo gần đây nhỉ? Xem chi tiết trong trang giới thiệu dịch vụ WordPress Hosting nhé.
Để nói chuyện bên PAVN xem nếu không sử dụng dịch vụ host của nó khi chưa hết thời gian thì có được trừ tiền vào domain không đã,domain còn 2 tháng nữa là tới hạn còn host sang năm 2019 mới hết hạn lận
Không có đâu bạn ơi. Bên đó hình như còn không có cả chính sách hoàn tiền mà. :))
Vậy hả,để hỏi nó xem sao,nếu không được chắc kiếm tiền xài host mới
Bạn ơi, cho mình hỏi mình dùng Vesta để làm server. Khi tạo subdomain thì nó tạo ra một thư mục nằm tách biệt hoàn toàn khỏi domain chính. Mình sửa thư mục lưu ảnh là /home/admin/web/img.domain.com/public_html/img thì bị báo lỗi
Unable to create directory img. Is its parent directory writable by the server?
Mình chỉnh lại chỉ còn img không thôi thì không thấy báo lỗi nhưng upload xong không thấy hình, vô thư mục coi cũng trống trơn không thôi.
Giờ phải làm sao bạn?
Cảm ơn bạn
Mình không rành về VestaCP đâu bạn ạ.
Adm cho mình hỏi
Mình dùng nginx có bật ssl rồi thì thêm cái 301 kiểu gì vậy cậu
Hta thì đơn giản cái này khó quá
Bạn lên Google và tìm kiếm với từ khóa “redirect 301 nginx” thử xem nhé.
Cho mình hỏi xíu
Vậy có cách nào để cho subdomain này nằm trên 1 server khác không??? Như mình thấy bên tinhte.vn hình ảnh hình như được lưu trên server khác
Thanks
Khi ảnh được lưu trên server khác thì nó lại trở thành CDN rồi bạn. Tinhte.vn dùng CDN mà.
Hello, đã đọc xong tất cả comment trên blog, thấy nhiều bạn hỏi nhiều về vụ Code một host và Upload một host khác, cái này thật sự mình cũng rất quan tâm vì giải pháp này mang tính “sáng tạo và mò mẩm” có 2 cách cơ bản mình biết, (1) PUSH sử dụng với CDN service và (2) Plug_in của wordpress để cấu hình 2 hosting “hiểu và yêu” nhau tạo liên minh Code 1 hosting và Images 1 hosting.
– Vậy đề cập ngay đến plug_in nhé, CDN thì có money là quất thôi chứ không khó…. đây là 1 plug_in khá cũ nhưng n1o cũng chẳng cần phải mới làm gì, nguyên tắc là chính: https://github.com/pontusab/wp-ftp-media-library — và đây là link dẫn sang: https://wordpress.stackexchange.com/questions/74180/upload-images-to-remote-server/78129#78129
– Mình đang tiến hành thử hàng, nên chưa có bất kỳ đánh giá hay bình luận nào cho plug_in này nhé, các bạn quan tân cũng tự làm thử coi có kết quả hay phát kiến gì thêm cung nhau xây dựng nhé.. Thanks.
“Nếu để ý, chắc bạn sẽ thấy tất cả link hình ảnh trên blog WP Căn bản đều có dạng static.wpcanban.com phải không nào?”
Không thấy cái này đúng trên wpcanban.com? giờ ko dùng nữa chăng?
Bên mình hiện tại không còn dùng nữa bạn ạ.
Chào bạn, mình cũng đang tìm hiểu về cái này. Nhưng đọc bài này xong kiểm tra web bạn thấy bạn ko làm như vậy nữa. Vậy bạn có thể chia sẻ cho mình lý do vì sao bạn ko làm như thế nữa ko?
Ngoài ra mình đang dùng VPS ko có xài CPnel thì phải làm thế nào để thêm subdomain hả bạn.
Mình không dùng nữa vì nếu lưu ảnh trên subdomain thì các thủ thuật giúp triển khai định dạng ảnh WebP sẽ không hoạt động được. Còn về câu hỏi thứ 2, bạn tìm trên Google là ra mà, thiếu gì bài hướng dẫn.
Cảm ơn bạn, tại mình cũng đang tìm hiểu cái này chứ ko có ý đâm chọc gì đâu. Hôm qua mình có thử dùng gói free trail 30 ngày của thằng MaxCDN rồi kết hợp với WP Rocket mà sau khi cài CDN xong tốc độ load web của mình từ 1,5 tăng lên 2,2 các điểm khác như GTmetrix thì tăng lên, nhưng điểm GoogleSpeed lại giảm hơn chục điểm liền. Mình hốt quá tắt luôn rồi. Tốt nhất cứ lưu trên VPS cho lành bạn ạ. Cái MaxCDN đó chỉ ngon khi nó có server trên khắp thế giới thôi. Híc.
Cái mình hướng dẫn không phải là CDN, vì thực chất dữ liệu vẫn lưu ngay trên host của bạn. :D
Ak thực ra mình định làm thế này.
Áp dụng cách bạn để chuyển ảnh sang 1 subdomain. Sau đó cài cloudflare cho subdomain đó rồi bật cdn lên cho subdomain. Như thế thì site chính vẫn ko ảnh hưởng gì. Subdomain vẫn được dùng như CDN
cho mình hỏi giờ nên tạo một nơi lưu trữ ảnh hơn hay up ảnh trực tiếp lên phần upload của web hơn ạ ? hiện tại thì mình thấy những site lớn họ toàn để sub làm nơi chứa ảnh :(
Các trang đó người ta dùng CDN bạn ạ. Không phải hình thức giống như trong bài hướng dẫn bên trên.