- Nếu bạn có quyền chỉnh sửa file Virtual host của Apache, sửa file Virtual host với nội dung tương tự như sau:
-
<VirtualHost *:80>
ServerName www.example.com
Redirect / https://www.example.com/
</VirtualHost><VirtualHost *:443>
ServerName www.example.com
# ... SSL configuration goes here
</VirtualHost> - Sau đó restart Apache
/etc/init.d/httpd restart
- Trường hợp Apache có cài đặt mod_rewrite, bạn có thể chuyển hướng bằng cách tạo file .htaccess mà ko cần hoặc ko được cấp quyền sửa file virtual host (thường gặp khi sử dụng web hosting):
- Nếu muốn chuyển hướng toàn bộ về ko có www:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
- Nếu muốn chuyển hướng toàn bộ về có www:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]
- Wordpress cài đặt với PHP + Apache có cài đặt mod_rewrite, bạn có thể chuyển hướng bằng .htaccess
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
- Wordpress cài đặt với PHP + Nginx
server {
listen 80;
server_name domain.com www.domain.com;
return 301 https://domain.com$request_uri;
}
server {
listen 443 ssl;
server_name domain.com www.domain.com;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers On;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
ssl_certificate /etc/nginx/ssl.crt/www.yoursite.com.crt;
ssl_certificate_key /etc/nginx/ssl.key/www.yoursite.com.key;
...
- Sau đó restart Nginx
/etc/init.d/nginx restart
- 1. Sử dụng Wordpress plugin: WP Force SSL
- 2. Sử dụng Wordpress plugin: Really Simple SSL
