跟进这里发布的问题:
How can I force users to access my page over HTTPS instead of HTTP?
我已将以下代码添加到一个页面,我的 CART 目录的 index.php 页面。
if($_SERVER["HTTPS"] != "on")
{
header("Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
exit();
}
当我从索引页面开始浏览网站时,CART 目录中的所有文件都通过 HTTPS 加载(我确实想要),但是如果我单击指向 CART 文件夹外的另一个页面的链接,它会返回到HTTP。
这是如何工作的? HTTPS 如何对 CART 目录中的页面保持事件状态?如果我在 CART 目录中输入页面的 URL,则不会强制执行 HTTPS,这是有道理的。
站点 URL 是 http://wtc.betaforming.com
我正在努力解决这个问题,谢谢。
布雷特
最佳答案
我建议将这段代码添加到您根目录中的 .htaccess 文件(如果您正在运行 Apache)。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} =off
RewriteRule ^DIRECTORY1|DIRECTORY2|DIRECTORY3 https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !^/DIRECTORY1|DIRECTORY2|DIRECTORY3
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
将 DIRECTORY1、DIRECTORY2 等替换为要强制启用 HTTPS 的目录,然后反向执行(下面的代码),如果不是 DIRECTORY1、DIRECTORY2 等,则重定向到 HTTP。
希望对你有帮助
关于php - 强制用户通过 HTTPS 而不是 HTTP 访问我的页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13369039/