如何对所有请求强制使用SSL?

时间:2010-10-08 作者:grm

有没有办法对所有请求强制使用SSL?很像使用管理ssl的选项,但适用于所有请求,包括未登录的请求。

4 个回复
最合适的回答,由SO网友:sorich87 整理而成
SO网友:fuxia

简单检查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.

SO网友:kosinix

将此规则添加到的顶部。htaccess:

# BEGIN Force SSL
# This should be the first rule before other rules
<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{HTTPS} !=on
    RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>
# END Force SSL
这应该在WordPress规则之前。

SO网友:Sam

我用过Really Simple SSL 对于我所有的客户网站,它工作得非常好。如果您不想修改代码,只需安装此插件并对其进行配置即可。

结束

相关推荐

如何使AJAX登录表单在启用force_ssl_admin的情况下工作?

我在一个网站上工作,该网站需要一个https安全的管理区域和一个安全的前端区域,以及显示私人信息的区域。我对用户登录的偏好是一个支持Ajax的小部件,它可以显示在站点的每个页面上,但当将提交的表单数据从非安全页面传递到登录页面时,我无法使其工作。我从使用Login With Ajax 插件经过一些修改后,在很大程度上可以很好地使用SSL,当从https访问的页面登录时,它可以很好地工作。。。当关闭FORCE\\u SSL\\u ADMIN时,它也可以正常工作。但是,当尝试在启用FORCE\\u SSL\\