问题描述
有没有办法强制 SSL 的所有请求?很像使用 admin ssl 的选项,但是对于所有请求,包括没有登录的请求。
最佳解决方案
is_ssl()
的简单检查应该做到:
add_action( 'plugins_loaded', 'wpse_2718_force_ssl' );
function wpse_2718_force_ssl()
{
if ( is_ssl() )
return;
wp_redirect(
'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']
);
exit;
}
但是我会在.htaccess 中这样做:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
对于 ISS,请参阅 this answer on Stack Overflow 。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。