我在我的网站上使用Marketpress和Wordpress。 Marketpress仅通过SSL保护必要的页面。如果我在受保护的网页上https://
,并尝试访问常规链接(例如:Home
或About Us
,则会尝试在网址中强制使用https,从而提供我是一个不可信的错误。我怎么能摆脱这个功能,因为我不希望我的整个网站都受到保护,尤其是在用户访问了安全区域之后。
编辑:1个快速解决方案我想手动输入自定义菜单区域中的链接,但这是一个我想避免的错误解决方法。
答案 0 :(得分:1)
我在header.php文件中使用以下内容,效果很好:
if(is_page_template( 'template1.php' ) || is_page_template( 'template2.php')) {
$pg_use_ssl = "yes";
}
if($_SERVER["HTTPS"] == "on" && $pg_use_ssl != "yes") { // Force NO ssl
header("Location: http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
exit();
}
if($pg_use_ssl == "yes" && $_SERVER["HTTPS"] != "on") {
header("Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
exit();
}
这将仅在特定页面模板上强制https://,并在所有其他页面模板上强制使用http://。
答案 1 :(得分:1)
一旦浏览器被重定向到https,它将保留在那里,同时使用相对URL。 e.g。
/folder/folder/page.html
而不是:
http://site.com/folder/folder/page.html
鉴于此行为嵌入在WordPress中,尝试更改它并不是特别有用。
相反,我能想到的最好的方法是向.htaccess添加一个重写规则,将https地址重写为http,除了那些需要https的网站部分。
也许这个问题会有所帮助:htaccess (https to http)