Hướng dẫn Bắt buộc https (SSL) sử dụng .htaccess và mod_rewrite cho XenForo

PVS

Super Moderator
Thành viên BQT
Tham gia
28/02/2015
Bài viết
16,728
Được Like
12,680
Bắt buộc https (SSL) sử dụng .htaccess và mod_rewrite cho XenForo

Như chúng ta đã biết, Google đã thông báo rằng HTTPS - thêm một chứng chỉ khóa SSL 2048-bit trên trang web của bạn - sẽ cung cấp cho bạn một tăng hạng nhẹ. Và bây giờ, Brivium sẽ cho bạn biết làm thế nào để bắt buộc https sử dụng .htaccess và mod_rewrite cho XenForo mà chúng tôi cài đặt trên trang web chính thức của chúng tôi. Bắt buộc https và tạo điều kiện cho nó trên trang web XenForo của bạn sẽ cho phép đăng nhập với giao thức an toàn "https" thay vì tiêu chuẩn "http" trước đó.

ssl_xenforo.png

Mẹo này giả định rằng bạn đã cài đặt SSL trên máy chủ lưu trữ của bạn. Nếu không, trước tiên bạn phải mua một Secure Socket Layer (SSL) từ nhà cung cấp hosting Web của bạn hoặc đại lý bán lẻ giấy chứng nhận khác. Trong khi giao thức mã hóa SSL không đảm bảo các trang web riêng của mình, vì nó mã hóa traffic đến và đi từ máy chủ nó có thể ngăn chặn việc nghe trộm và bảo vệ dữ liệu nhạy cảm. Sau đó, nó đặc biệt quan trọng để có SSL trong XenForo của bạn để đảm bảo nội dung bảo mật, mật khẩu và tất cả những dữ liệu an toàn. Thích hợp sử dụng giấy chứng nhận SSL sẽ giúp bạn đạt được sự tin tưởng của khách hàng và bán được nhiều.

Trước hết, bạn cần phải thay đổi tùy chọn URL board của bạn trong trang web XenForo. Đến Admin CP > Options > Basic Board Information và thiết lập Board URL & Home Page URL https://yourdomain thay vì http://yourdomain.
Điều này sẽ bắt buộc SSL cho toàn bộ trang web của bạn, cả AdminCP và front end. Nếu bạn không sử dụng SSL cho tên miền của bạn, bạn sẽ ngay lập tức nhận được một lỗi khi lưu.

Xin lưu ý: Bước trên cho phép bạn cấu hình SSL, nhưng nếu một người truy cập vào một trang XenForo bằng non-HTTPS (nghĩa là URL "cũ"), thì khách này không tự động chuyển hướng.

Tiếp theo, mở tập tin .htaccess trên thư mục gốc cài đặt Xenforo của bạn, sau đó thêm đoạn mã sau vào dưới cùng của file và bắt buộc HTTPS trên tất cả các trang.
Mã:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301]

Nếu bạn muốn bắt buộc https chỉ trên một số trang, bạn có thể thử
Mã:
RewriteCond %{HTTPS} off
RewriteCond %{QUERY_STRING} (^register$|^login$)
RewriteRule ^/?(.*) https://%{SERVER_NAME}%{REQUEST_URI} [R=301]

Nếu bạn muốn thêm ngoại lệ cho bắt buộc https trên một số trang, bạn có thể thử
Mã:
RewriteCond %{HTTPS} off
RewriteCond %{QUERY_STRING} !(^forums$|^threads$)
RewriteRule ^/?(.*) https://%{SERVER_NAME}%{REQUEST_URI} [R=301]

Cuối cùng, các bạn sẽ có file .htaccess như sau:
Mã:
ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 500 default
<IfModule mod_rewrite.c>
    RewriteEngine On
    #    If you are having problems with the rewrite rules, remove the "#" from the
    #    line that begins "RewriteBase" below. You will also have to change the path
    #    of the rewrite to reflect the path to your XenForo installation.
    #RewriteBase /xenforo
    #    This line may be needed to enable WebDAV editing with PHP as a CGI.
    #RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301]
</IfModule>

Chúc các bạn thành công.


Nguồn: xenforo.rocks​
 

VLVN

Private
Tham gia
13/09/2016
Bài viết
11
Được Like
5
Cám ơn bạn đã chia sẻ. mình dùng code trên thêm vào file htaccess thì gõ tenmien. com nó không tự chuyển sang https: //tenmien .com.
Mình dùng code này chèn ngay bên dưới RewriteEngine On thì chạy ok:
Mã:
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
up cho bạn nào chưa làm được :))
 

tuna

Sergeant
Tham gia
30/01/2017
Bài viết
639
Được Like
276
Cám ơn bạn đã chia sẻ. mình dùng code trên thêm vào file htaccess thì gõ tenmien. com nó không tự chuyển sang https: //tenmien .com.
Mình dùng code này chèn ngay bên dưới RewriteEngine On thì chạy ok:
Mã:
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
up cho bạn nào chưa làm được :))
bạn ơi bạn có cấu hình redirect 301 chuyển www sang non-www cho web của bạn ko chỉ mình với, mình làm theo các bài hướng dẫn mà vẫn chưa đc :(
 
  • Like
Reactions: THB

tuna

Sergeant
Tham gia
30/01/2017
Bài viết
639
Được Like
276
à cho mình hỏi không đăng kí ssl nhưng chuyển hướng về https thay vì http thì có tác dụng gì ko nhỉ,
 

VLVN

Private
Tham gia
13/09/2016
Bài viết
11
Được Like
5
bạn ơi bạn có cấu hình redirect 301 chuyển www sang non-www cho web của bạn ko chỉ mình với, mình làm theo các bài hướng dẫn mà vẫn chưa đc :(

Web mình không redirect 301 gì cả, bạn chỉ cần vào Admin > Options > Basic Board Information rồi cài đặt đường dẫn dạng non-www cho Board URL và Home Page URL là ok.
Còn đối với các link có sẵn trên web, bạn có thể dùng code này:
Mã:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.tenmien.com [NC]
RewriteRule ^(.*)$ http://tenmien.com/$1 [L,R=301]
Thay tenmien bằng domain của bạn.
à cho mình hỏi không đăng kí ssl nhưng chuyển hướng về https thay vì http thì có tác dụng gì ko nhỉ,
Bạn không đăng ký ssl đâu có chuyển về được https, bạn phải mua hoặc 1 số host hiện cho dùng miễn phí (vd như hawkhost). Tác dụng chủ yếu là để bảo mật cao cho web, chống hack..., google đã và sẽ ưu ái những web có https hơn
 
Sửa lần cuối:

tuna

Sergeant
Tham gia
30/01/2017
Bài viết
639
Được Like
276
Web mình không redirect 301 gì cả, bạn chỉ cần vào Admin > Options > Basic Board Information rồi cài đặt đường dẫn dạng non-www cho Board URL và Home Page URL là ok.
Còn đối với các link có sẵn trên web, bạn có thể dùng code này:
Mã:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.tenmien.com [NC]
RewriteRule ^(.*)$ http://tenmien.com/$1 [L,R=301]
Thay tenmien bằng domain của bạn.

Bạn không đăng ký ssl đâu có chuyển về được https, bạn phải mua hoặc 1 số host hiện cho dùng miễn phí (vd như hawkhost). Tác dụng chủ yếu là để bảo mật cao cho web, chống hack..., google đã và sẽ ưu ái những web có https hơn
cảm ơn bạn
 

TuanThinh

Private
Tham gia
21/04/2015
Bài viết
8
Được Like
4
Chào, mình đã làm theo các cách nhưng nó bị lỗi này. Chỉ mình với
Not Found.png
 
Tham gia
14/01/2016
Bài viết
155
Được Like
54
M gõ tenmien. com nó không tự chuyển sang https: //tenmien .com . đã thử hết các code trên, ko biết lỗi do đâu các bác nhỉ. khi đăng nhập vào nó tự chuyển qua https.
 

snail

Gefreiter
Tham gia
12/11/2015
Bài viết
64
Được Like
48
M gõ tenmien. com nó không tự chuyển sang https: //tenmien .com . đã thử hết các code trên, ko biết lỗi do đâu các bác nhỉ. khi đăng nhập vào nó tự chuyển qua https.

Thêm đoạn này vào nhé
Mã:
 RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

sẽ được như sau
Mã:
#    Mod_security can interfere with uploading of content such as attachments. If you
#    cannot attach files, remove the "#" from the lines below.
#<IfModule mod_security.c>
#    SecFilterEngine Off
#    SecFilterScanPOST Off
#</IfModule>

ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 405 default
ErrorDocument 406 default
ErrorDocument 500 default
ErrorDocument 501 default
ErrorDocument 503 default

<IfModule mod_rewrite.c>
    RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

    #    If you are having problems with the rewrite rules, remove the "#" from the
    #    line that begins "RewriteBase" below. You will also have to change the path
    #    of the rewrite to reflect the path to your XenForo installation.
    #RewriteBase /xenforo

    #    This line may be needed to enable WebDAV editing with PHP as a CGI.
    #RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]


</IfModule>
 
  • Like
Reactions: THB
Tham gia
14/01/2016
Bài viết
155
Được Like
54
@snail thì để sau đoạn này:

RewriteEngine On

chứ để trước thẻ
</IfModule>
thì ko có tác dụng
 
  • Like
Reactions: THB

singh

Sergeant
Tham gia
08/06/2015
Bài viết
470
Được Like
276
quá phức tạp. Cứ dùng cloudflare > Crypto > bấm vào On trong Always use HTTPS. Xong!
 
  • Like
Reactions: THB

hacobi1102

MasterCorporal
Tham gia
10/03/2016
Bài viết
356
Được Like
166
Mấy đoạn trên đều không xài được, mình dùng cái này chạy trên Cyberpanel
HTML:
#REQUIRE HTTPS
RewriteEngine On
RewriteCond %{HTTP_HOST} ^hoibacsy.vn
RewriteRule (.*) https://hoibacsy.vn/$1 [R=301,L]
 

huantranktm

Private
Tham gia
06/10/2018
Bài viết
8
Được Like
2
cho mình hỏi ngu tý.
Sao mình cài SSL rồi mà vẫn bị báo lỗi "Không bảo mật" là sao vậy?
Ai biết trả lời giúp mình, cảm ơn ạ!

Capture.JPG
 

huantranktm

Private
Tham gia
06/10/2018
Bài viết
8
Được Like
2
mình vào thấy bình thường mà bạn
Bình thường là sao? tức là đã có khóa bảo mật rồi à? màu xanh hay màu đen? Trang nào cũng có hãy mỗi trang chủ ạ? sao mình vào vẫn thấy lỗi nhỉ, chắc tại cooke à?
 

huantranktm

Private
Tham gia
06/10/2018
Bài viết
8
Được Like
2
Bệnh này là do lỗi lúc e cài SLL, e đã cài trên cloudflare trước đó và trỏ DNS domain đến server của cloudflare và bị lỗi như vậy, sau đó thấy bị lỗi thì xóa đi và cài lại với Lest Cryent nhưng vẫn bị lỗi, e thử cài lại với domain khác chưa cài qua Cloudfare thì ok ngay. E nghĩ lỗi này do Cloudflare gây ra, ai có cách nào giả quyết k giúp e với ạ.
 

Hướng dẫn sử dụng

XenForo 1 XenForo 2
Translate by PVS

Dịch vụ XenForo của VNXF

Mr. Tuấn

Mobile/Zalo: 0988 488 096

Telegram: bluekpro

Email: [email protected]

Nhà Tài Trợ

Mút Xốp Không Gian
pallet Thịnh Phát
Top Bottom