Cấu hình file .htaccess Redirect 301 www to non-www và http to https trên máy chủ Apache

0
16

Tuy Apache không còn đánh giá cao như Nginx nữa, và hầu hết chuyển từ Apache sang Nginx. Nhưng một số Control Panel đang sử dụng mô hình kết hợp cả Nginx và Apache mình thấy cũng khá chất. Hiện tại, phân nửa VPS đang sử dụng mình sử dụng mô hình này. Cụ thể, bạn có thể tham khảo thêm VestaCP tại bài này.

Cấu hình file .htaccess Redirect 301 www to non-www và http to https trên máy chủ Apache
Cấu hình file .htaccess Redirect 301 www to non-www và http to https trên máy chủ Apache

Một số website hay bị lỗi trùng lặp giữa www và non-www. Google hiểu website www.vagablog.net và http://vagablog.net là 2 website khác nhau, vì thế việc của chúng ta là phải cấu hình để nó chỉ nhận 1 địa chỉ mà các bạn muốn mà thôi. Việc nhận 2 địa chỉ sẽ khiến nội dung của bạn index bị chậm, thậm chí bị nhầm lẫn.

Để khắc phục điều này bạn phải Redirect 301 từ www về non-www. Đối với Apache, việc thực hiện dựa trên chỉnh sửa file htaccess.

Để làm điều này, bạn tạo 1 file htaccess nằm ở thư mục gốc của web (bên trong public_html).

Thêm vào code dưới đây vào file .htaccess:

Redirect 301 từ www về non-www:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>

Chuyển tiếp từ http sang https:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

Nếu bạn sử dụng https trên Apache bạn vẫn phải fix cái lỗi www thì đây là đoạn code được kết hợp lại:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
</IfModule>

Nhớ note lại để dùng khi cần thiết nhé.