我在我的网站上使用 Marketpress 和 Wordpress。Marketpress 仅通过 SSL 保护必要的页面。如果我在一个受保护的页面上,即https://
尝试访问常规链接(即:Home
或者About Us
它会尝试在 URL 中强制使用 https,从而给我一个不受信任的错误。我该如何摆脱这个功能,因为我不希望我的整个站点受到保护,尤其是在用户访问安全区域之后。
编辑:我想一个快速的解决方案是手动输入自定义菜单区域中的链接,但这是我想避免的不好的解决方法。
我在 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://。
一旦浏览器被重定向到 https,它将停留在那里,同时使用相对 URL。例如
/folder/folder/page.html
代替:
http://site.com/folder/folder/page.html
鉴于此行为嵌入在 WordPress 中,因此尝试更改它总体上不会特别有用。
相反,我能想到的最好的办法是在 .htaccess 中添加一个重写规则,将 https 地址重写回 http,除了那些需要 https 的网站部分。
也许这个问题会有所帮助:htaccess (https to http)