使用挂钩强制HTTPS 301重定向

时间:2014-12-19 作者:Robbert

我试图通过挂接到“模板重定向”功能来强制301 https重定向。我不想使用htaccess,因为当我更新permalinks时,带有https重定向的htaccess就会消失。

因此,使用此函数,如果url加载了“http”,我想进行重定向,但什么也没有发生。有人能帮我吗?

add_action( \'template_redirect\', \'bhww_ssl_template_redirect\', 1 );
function bhww_ssl_template_redirect() {
    if ( is_ssl() && !is_admin() ) {
        if ( 0 === strpos( $_SERVER[\'REQUEST_URI\'], \'http\' ) ) {
            wp_redirect( preg_replace( \'|^https://|\', \'http://\', $_SERVER[\'REQUEST_URI\'] ), 301 );
            exit();
        } else {
            wp_redirect( \'http://\' . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\'], 301 );
            exit();
        }
    }
}

1 个回复
最合适的回答,由SO网友:Bikram Pahi 整理而成

我们可以用非常简单的方式添加https。。。。不需要在任何钩子中编写所有这些代码。。。。

登录wordpress管理员,进入设置>常规,找到wordpress地址(URL)并用HTTPS替换HTTP,找到站点地址(URL)并用HTTPS替换HTTP,单击Save Changes编辑。htaccess文件并添加以下代码

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^huepixel\\.com$ [NC]
RewriteRule ^ https://www.huepixel.com%{REQUEST_URI} [L,R=301]
安装wordpress https插件并进行配置。。。。

仅此而已

结束

相关推荐

Conditional Redirect

我希望基于浏览器进行重定向,但只针对特定页面(或2)。如果浏览器为IE7或更低版本,我想将用户发送到另一个页面。alt页面将有完全不同的设置,所有内容都适用于他们的旧垃圾。我找不到插件。我正在考虑做一个php注入插件,使这个页面特定。有什么建议吗?