如何使用用户通过HTTPS而不是HTTP访问我的页面?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (82)

我只想强制作为HTTPS页面访问一个页面(Apache上的PHP)。如何做到这一点,而不使整个目录需要HTTPS?或者,如果您从HTTP页面向HTTPS页面提交表单,它是通过HTTPS而不是HTTP发送的吗?

以下是我的例子:

http://www.example.com/some-page.php

我希望它只能通过以下途径访问:

https://www.example.com/some-page.php

当然,我可以把这个页面的所有链接都指向HTTPS版本。

我认为有一件事是在PHP文件的头中放置一个重定向,以检查它们是否正在访问HTTPS版本:

if($_SERVER["SCRIPT_URI"] == "http://www.example.com/some-page.php"){
  header('Location: https://www.example.com/some-page.php');
}

但这不可能是正确的方式,对吧?

提问于
用户回答回答于

<Location /buyCrap.php>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</Location>

用户回答回答于

if($_SERVER["HTTPS"] != "on")
{
    header("Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
    exit();
}

扫码关注云+社区