Hiện nay nhu cầu sử dụng giao thức bảo mật SSL cho website đang khá phổ biến do Google đã tăng thêm trọng số ranking cho những site này. Sau khi cài đặt SSL thành công, làm thế nào để redirect tất cả link từ HTTP sang HTTPS với Nginx, hãy tham khảo bài viết này nhé.

Sửa file cấu hình của nginx (nginx.conf) hoặc nếu dùng HocVPS Script thì bạn hãy sửa file cấu hình cho từng domain trong folder /etc/nginx/conf.d/

Thêm hoặc điều chỉnh lại cấu trúc redirect sau:

rewrite ^(.*) https://example.com$1 permanent;

Cuối cùng bạn sẽ được file có đoạn nội dung tương tự như thế này:

server {
      server_name www.example.com;
      rewrite ^(.*) https://example.com$1 permanent;
}

Khởi động lại Nginx

service nginx restart

Comment của bạn

Lưu ý: tất cả comment đều được kiểm duyệt cẩn thận! Nếu có code bạn hãy up lên pastebin.com rồi để lại link trong comment.

26 Comments

  1. Vu Nguyen 12 comment

    Chào bạn !
    Mình có 2 link như sau:
    1. domaina.com/vn/danh-muc-sp/day-la-ten-bai-viet.html
    2. domaina.com/vn-vi/day-la-ten-san-pham.html

    mình sẽ redirect 301 như thế nào để đưa 2 link trên về cấu trúc link như
    1. domaina.com/day-la-ten-bai-viet
    2. domaina.com/day-la-ten-san-pham

    Mình ví dụ 2 link thôi. Thật ra có hơn 1k link

    Thanks

  2. Quang Vu 2 comment

    Cảm ơn Phương.
    Mình đọc hướng dẫn trên mạng rồi vào cấu hình lại bằng putty, (Mình nhập dòng lệnh này: server {
    listen 443;
    server_name _ *;
    rewrite ^(.*) http://$host$1 permanent;
    }
    Khởi động lại server thì bị lỗi như này không truy cập được vào web nữa: Error establishing a database conection.
    Giờ muốn undo thì làm như nào vậy Phương?

    1. Việt Phương Moderator

      Error establishing a database conection. là lỗi bên database MySQL, không phải lỗi bên webserver Nginx nhé bạn
      Còn bạn muốn undo đoạn sửa trên thì bạn vào lại phần cấu hình rồi để lại đoạn cũ trước khi cấu hình thôi

  3. Quang Vu 2 comment

    Bạn cho mình hỏi, mình dung vps của vultr, khi cài wp mình đề website là http nhưng khi truy cập web tại sao vẫn là https vậy?

    1. Việt Phương Moderator

      Do bạn có cấu hình redirect từ HTTP sang HTTPS nên nó thế thôi. Bạn kiểm tra Webserver trên VPS hoặc plugin trên WP đi
      Còn điền lúc cài WP chỉ điền domain chứ có điền http hay https gì đâu bạn

  4. sinhle 71 comment

    sao mình gõ : nano /etc/nginx/conf.d/
    Thì trong file nó trống trơn không có gì. đang dùng hocvps
    cảm ơn.

    1. Việt Phương Moderator

      Bạn gõ thế là tạo file mới rồi(vì chưa có file ý). Thiếu phần sau là tên file Nginx conf cơ
      Ví dụ domain hocvps là /etc/nginx/conf.d/hocvps.com.conf

  5. Oisonvn 8 comment

    Chào Luân!
    Mình mới redirect sang https nhưng gặp lỗi không upload được hình lên bằng ajax, nhưng nếu sử dụng http thì vẫn upload bình thường.
    Bạn có thể giúp mình được không?
    Cảm ơn nhiều!

  6. luatleto 6 comment

    Chào Luân, mình dùng hocvps script nhưng giờ muốn redirect 301 từ 1 tên miền A sang 1 tên miền B thì có cách nào không Luân? Mình đã thử dùng htaccess nhưng vẫn k chuyển đc 🙁

  7. CươngPjh 29 comment

    Anh Luân ơi em có 1 vấn đề như sau mong anh giúp đỡ, em cài HocVPS Script và chạy site thấy rất ngon, tiết kiệm đc rất nhiều RAM và muốn sử dụng nó hẳn luôn, tuy nhiên giờ em dính một lỗi là trước đây em sài ssl free bên cloud flare và giờ thì bỏ nó đi rồi, tuy nhiên em muốn redirect domain dạng https://www.domain.com về dạng domain.com thì em sẽ phải cấu hình thế nào ạ?

    1. CươngPjh 29 comment

      A ơi giúp em vấn đề này với, em mò cả ngày rồi mà vẫn không có cách giải quyết 🙁

      1. Luân Trần Admin

        Làm ngược lại bài hướng dẫn này ko được à em? Gửi anh file conf xem nào?

  8. Neo 34 comment

    Hi Luân,
    Bên wordpress.org có nói về việc chỉ dùng https cho phần login và admin, nếu dùng cho toàn site sẽ gây tải nặng cho server. WordPress.org cũng đang chạy như vậy, không biết cụ thể thế nào nhỉ?
    Thank Luân

    1. Lamnk 1 comment

      SSL không tạo overhead nhiều cho server, chủ yếu page load time sẽ mất thời gian hơn chút ở phần handshake tạo ra https connection thôi.

      Google cộng thêm một chút điểm cho https nên việc này cũng đáng làm.