0

我有一个雄心勃勃的计划:我希望将注册、登录、交易等页面定向到 HTTPS 服务器,而其他操作如浏览我的网站,如“联系我们或反馈或条款和政策”我不想打扰使用 HTTPS 服务器,我只希望它是 HTTP

我怎样才能做到这一点?

我对这个“选择性协议”的主要目标是加快我的网站加载时间

还有一个无关紧要的小问题:浏览器是否“缓存”来自本地主机的页面?至少chrome没有,浏览器会缓存来自本地主机(XAMPP)的网页吗?

4

1 回答 1

1

这是常见的做法。只需使用绝对 URL 链接到安全页面(例如注册和登录),这样您就可以指定 https 协议。其他链接可以保持相对。

一个问题是,如果您在使用 https 提供的页面上使用相对链接,它们将保留在 https 中。例如,如果您有一个在所有页面上呈现的通用顶部导航栏……那么在普通 (http) 页面上,例如您的主页,该栏中的相对链接也将是 http。但是,在诸如注册之类的 https 页面上,如果用户使用该顶部导航栏点击离开,则相对链接将是 https,“继承”周围页面的协议。只是需要注意的事情。如果您不需要它,调用 https 并不理想,因为处理此类请求的计算成本更高。

更新

与@user1537158 的进一步讨论澄清说,正在为所有页面生成 https,这不是预期的行为。此外,服务器环境是由 Apache 提供的 PHP。

PHP 代码可能不会导致这种情况发生,某些 Apache 配置更可能是罪魁祸首。可能有一个“重写规则”导致了这种行为。“重写规则”是 Apache 的指令,告诉它以某种方式修改传入的请求,例如,重定向它或拒绝它。

这是我所指内容的快速概述: http ://wiki.apache.org/httpd/RewriteHTTPToHTTPS

因此,在这种特殊情况下的下一步:

  1. 让您的系统管理员仔细检查配置。它可能位于 httpd.conf 或 Apache 引用的其他配置文件中,也有一种方法可以在 .htaccess 文件中执行此操作,该文件可以驻留在所服务的各个目录中。
    • 调查为什么所有 URL 都被重写为 https
    • 设置重写规则以强制某些 URL 为 https
  2. 确保在导航到安全页面时,代码(PHP、模板、javascript 等)中的链接和操作正确引用了绝对 URL,包括 https 协议。
于 2012-10-04T06:23:46.390 回答