gpt4 book ai didi

php - 强制 http/https : How to detect https and which status header to send when redirecting?

转载 作者:可可西里 更新时间:2023-11-01 17:13:26 24 4
gpt4 key购买 nike

我编写了一个脚本来强制通过 http 或 https 访问站点的某些部分。我们希望用户被重定向到普通的 http 页面,以防他们意外登陆 https 版本,反之亦然。到目前为止一切顺利,但我有 2 个问题要问你们。

  1. 切换协议(protocol)时要发送的正确状态 header 是什么?在重定向之前,我目前在这两种情况下都使用它:

    header('HTTP/1.1 301 Moved Permanently');
  2. 检测我们是否使用 https 的首选方法是什么?

    // if ($_SERVER['SERVER_PORT'] == 443) /* EDIT: OK, not this? */

    if (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) === 'on'))

    还有什么?两个?

回复评论:

  • 我们正在使用 Apache,但如果有一个通用的解决方案那就太好了。

  • 我们不想使用 .htaccess,因为 https 要求的页面已被我们正在使用的 CMS 如此“标记”,并且这是其中的一部分。我们不想将 URL“硬编码”到文件中。

最佳答案

  1. 301 重定向是正确的方法。您不能中途在 HTTP 和 HTTPS 之间切换。该页面必须在客户端重新加载。
  2. 第二种方法,通过$_SERVER['HTTPS'] 是首选方法。只需确保您的 Web 服务器支持它即可。

关于php - 强制 http/https : How to detect https and which status header to send when redirecting?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8902419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com