在用作IFRAME的单个页面上强制使用SSL

时间:2015-11-16 作者:WpDoe

我有一个WordPress页面,它只包含一个滑块的短代码,并且被其他网站用作iFrame。

我需要强制SSL one这一个页面,但无论我尝试什么,它都不会被重定向。

我已尝试通过以下功能实现它:

function yst_ssl_template_redirect() {

        $page_id = 498;


        if ( is_page( $page_id )  && ! is_ssl() ) {

            if ( 0 === strpos($_SERVER[\'REQUEST_URI\'], \'http\') ) {
                wp_redirect(preg_replace(\'|^http://|\', \'https://\', $_SERVER[\'REQUEST_URI\']), 301 );
                exit();
            } else {
                wp_redirect(\'https://\' . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\'], 301 );
                exit();
            }
        } 
        if ( !is_page( $page_id )  && 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();
            }
        }


    }
然而,它总是以无限重定向循环结束,无法完成工作。

我考虑了一种强制SSL通过的解决方案。htaccess,但我无法让它在一个页面上工作。

非常感谢您提供的任何帮助或指导,如果有任何其他信息,请告诉我。

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

您被重定向是因为自动重定向到页面的规范地址http://....您需要使用redirect\\u规范过滤器https://developer.wordpress.org/reference/hooks/redirect_canonical/ 告诉wordpress不要重定向到该页面。

相关推荐

WP_REDIRECT导致无限循环

Goal: 我修改了permalink,以显示特定类别的类别名称:grill rezepte。默认情况下,永久链接为:https://website.com/post-title 现在只有烧烤餐厅:https://website.com/grill-rezepte/post-title因此,我想在所有grill Recipes上设置301重定向,以便它们移动到新的URL。我有下面的代码(见下文),它会导致一个无限循环。Code:add_action(\'template_redirect\', \'pos