ืืื ืืืคืืช HTTPS ืืืืจืืคืจืก ืขื ืฉืจืช Apache ืื LiteSpeed, ืืืกืืคื ืืืง ืืคื ืื 301 ืืงืืืฅ .htaccess. ืื ืื ืืงืฉืช HTTP ืชืืคื ื ืืืืชื ืืชืืืช ืืืืืง ื-HTTPS, ืืืืืืฉืื (ืืื ืื ืืขื ืืืืคืืฉ) ืืจืื ืจืง ืืจืกื ืืืช ืฉื ืื ืขืืื.
ืืชืงืื ื ืงืืื ืืช ืชืขืืืช ื-SSL ืืืืื ืฉืืจืกืช ื-HTTPS ื ืืขื ืช ืืื ืฉืืืืืช. ืืชืืืื ืืืขืืจ ืืืื, ืืืื ืืืคืื ืืชืืื ืืขืืจื (Mixed Content), ืืฆืืฆื ืืืืจืื ืืืขืืจืช ืืชืจ ืืืจืืคืจืก ื-HTTPS.
ืืงืื ืืืคืืืช HTTPS ืืงืืืฅ .htaccess
ืคืชืื ืืช ืงืืืฅ ื-.htaccess ืฉืืชืืงืืื ืืจืืฉืืช ืฉื ืืืจืืคืจืก (ืืชืืงืืื ืฉืื ื ืืฆื ืืงืืืฅ wp-config.php) ืืืืกืืคื ืืช ืืฉืืจืืช ืืืืืช ืืชืืืืช ืืงืืืฅ, ืืขื ืืืืืง # BEGIN WordPress:
# Force HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# BEGIN WordPress
# (the rules WordPress generated stay here, unchanged)
# END WordPress
ืืฉืืืจื ืืช ืืงืื ืืืืฅ ืืกืืืื ืื ืฉื ืืืจืืคืจืก. ืืืจืืคืจืก ืืืชืืช ืืืืฉ ืืช ืื ืื ืฉื ืืฆื ืืื ืืื ืืื ืคืขื ืฉืฉืืืจืื ืืช ืืงืืฉืืจืื ืืงืืืขืื.
ืืืฆื ืืงืื ืขืืื
ืื ืขืืื ืื ืืืง:
RewriteCond %{HTTPS} offืชืืคืก ืืงืฉืืช ืฉืื ืืืืขื ืืจื SSL/TLS. ืฉืจืช Apache ืืืืืจ ืืชHTTPSื-onืขืืืจ ืืืืืจืื ืืืฆืคื ืื.RewriteRule ^(.*)$ืชืืคืก ืื ื ืชืื ืืืคื ื ืืืชื ื-https://ืืื ืขื ืืืืืืื ืืื ืชืื ืฉืืชืืงืฉื. ื-Query String ืืืขืืจ ืืืืืืืืช.R=301ืืืคื ืืช ืืืคื ืื ืืงืืืขื, ืืื ืื ืืขื ืืืืคืืฉ ืืืืขืื ืืื ืืงืก ืืช ืืชืืืช ื-HTTPS. ืืื ืงืื ืกืืืืก, Apache ืฉืืื ืืคื ืื ืืื ืืช ืืกืื 302. ืืืืLืขืืฆืจ ืืช ืฉืืจ ืืืืงืื ืขืืืจ ืืืชื ืืงืฉื.
ืืืืง ืืืื ืืจืืฅ ืืคื ื ืืืืืง ืฉื ืืืจืืคืจืก. ืืืืงืื ืฉื ืืืจืืคืจืก ืื ืชืืื ืืช ืจืื ืืืงืฉืืช ื-index.php, ืืืคื ืื ืฉืืืืงืืช ืืืจืืื ืื ืชืืคืขื ืขืืืจ ืืชืืืืช ืจืืืืืช ืฉื ืคืืกืืื ืืขืืืืื.
ืฉืืื ืื ืฉืืคืืคื ืื ืฉืืืจืื ืืคื ืืืช 301 ื-cache ืืืืจื ืืื. ืืืื ืืืืืงืืช ืืฉืชืืฉื ื-R=302, ืืืงื ืืื ืืชืืืืช, ืืจืง ืื ืืืืืคื ื-R=301.
ืขืืืื ืืชืืืืช ืืืจืืคืจืก ื-HTTPS
ืืืจืืคืจืก ืขืืืื ืืื ื ืืช ืืงืืฉืืจืื ืืคื ืืืืืจืืช ืฉืื. ืืืื ืกื ืืืืืจืืช > ืืืื ืืฉื ื ืื ืืช ืืืชืืืช ืฉื ืืืจืืคืจืก ืืื ืืช ืืืชืืืช ืฉื ืืืชืจ ื-https://.
ืื ืืฉืืืช ืืืื ืืคืืจืื (ืืืืืจ ืื ื ืืชื ืื ืืขืจืืื), ืืขืจืืื ืืืืืจืื ืืงืืืฅ wp-config.php. ืขืืื ื ืืืชื ืฉื:
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );
ืงืืฉืืจื http:// ืืฉื ืื ืืชืืื ืืคืืกืืื ืืืจืืื ืืืืืจืืช ืขื ืชืืื ืืขืืจื. ืขื WP-CLI ืชืืืื ืืืืืืฃ ืืืชื ืืืกื ืื ืชืื ืื (ืืื ืงืืื, ืืืกืืจื ืืช --dry-run ืืฉืืื"ื ื ืจืื ืชืงืื):
wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid --dry-run
ืื ืชืจืฆื ืืงืืข ืื ืืจืกื ืืืช ืฉื ืืืืืืื, ืืืกืืคื ืืช ืืืืงืื ืืืคื ืื ื-www ืืืชืืืช ืืื www (ืื ืืืืคื).
ืืืืืช ืืคื ืืืช ืืืืืจื Cloudflare, Proxy ืื Load Balancer
ืืืฉืจ ื-SSL ืืกืชืืื ื-Proxy ืื ื-Load Balancer, ืืืชื Proxy ืืชืงืฉืจ ืขื ืืฉืจืช ืฉืืื ื-HTTP ืจืืื. ืืืฆื ืืื %{HTTPS} ืชืืื off, ืื ืืงืฉื ืืืคื ืืช ืฉืื, ืืืืคืืคื ืืฆืื ืืช ืืฉืืืื ืดtoo many redirectsืด.
ืืืงืื %{HTTPS}, ืืืงื ืืช ื-header ืืฉื X-Forwarded-Proto ืฉื-Proxy ืฉืืื:
# Force HTTPS behind a proxy that sets X-Forwarded-Proto
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
ืืกืชืืื ืขื ื-header ืืื ืจืง ืืืฉืจ ื-Proxy ืืฉืืืืชืื ืืืื ืืืจืก ืืช ื-header ืืื ืืงืฉื. ืืชืืขืื ืฉื Apache ืขื ืืคืืืช HTTPS ืืชืืจ ืืช ืืชืฆืืจื ืืื ืืืช ืืืกืชืืืืืช ืืืืื.
ืืืจืืคืจืก ืฆืจืืื ืืืขืช ืื ืฉืืืงืฉื ืืืงืืจืืช ืืืืขื ื-HTTPS. ืืืกืืคื ืืช ืืงืื ืืื ื-wp-config.php, ืืขื ืืฉืืจื ืดThat's all, stop editing!ืด:
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && strpos( $_SERVER['HTTP_X_FORWARDED_PROTO'], 'https' ) !== false ) {
$_SERVER['HTTPS'] = 'on';
}
ื-Cloudflare, ืืกืืื ืื ืคืืฆื ืืื ืืฆื ื-SSL/TLS ืืฉื Flexible, ืฉืื Cloudflare ืืชืืืจ ืืฉืจืช ืฉืืื ื-HTTP. ืืืืืจื ืืช ืืืฆื ื-Full (strict) ืขื ืชืขืืื ืชืงืคื ืขื ืืฉืจืช, ืืคื ืฉืืชืืืจ ืืืืจืื ืคืชืจืื ืืืืืืช ืืืคื ืื ืฉื Cloudflare.
ืฉืจืช Nginx ืืื ื ืงืืจื ืืช .htaccess
ืฉืจืชื Nginx ืืชืขืืืื ืืงืืฆื .htaccess, ืื ืฉืืงืื ืฉืืืขืื ืื ืืขืฉื ืืืจ. ืืืกืืคื ืืืืง server ืฉืืืืื ืืคืืจื 80 ืืืคื ื ื-HTTPS:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
ืืื ืืื ืืืฉื ืืืืืจืืช ืืฉืจืช? ืืงืฉื ืืืืจืช ืืืืกืื ืืืืกืืฃ ืืช ืืืคื ืื.
ืฉืืืืช ื ืคืืฆืืช
ืื ื ืืื ืฉืืืืช ืฉืขืืืืช ืื ืืขื ืืืื ืืคืืืช HTTPS ืืืืจืืคืจืก:
# BEGIN WordPress. ืื ืชืืงืื ืืืชื ืืืจื ืืืืงืื ืฉื ืืืจืืคืจืก ืืื ืื ืืจืืฅ ืขืืืจ ืืชืืืืช ืฉื ืคืืกืืื ืืขืืืืื, ืืื ืชืืงืื ืืืชื ืืชืื ืกืืืื ื ืืืจืืคืจืก ืืื ืืืืืง ืืฉืืงืืฉืืจืื ืืงืืืขืื ืืืฉืืจื.
X-Forwarded-Proto ืืืงืื %{HTTPS}, ืื-Cloudflare ืฉื ื ืืช ืืฆื ื-SSL/TLS ื-Flexible ื-Full (strict).
http:// ืืชืื ืืขืืืืื ืขืฆืื, ืืืฉื ืชืืื ืืช ืืชืืื ืืคืืกืืื. ืขืืื ื ืืช ืืืชืืืช ืฉื ืืืจืืคืจืก ืืืช ืืืชืืืช ืฉื ืืืชืจ ื-HTTPS, ืืืืืืคื ืืช ืืืชืืืืช ืืืฉื ืืช ืืืกื ืื ืชืื ืื.