gpt4 book ai didi

apache - 使用 cloudflare flexible ssl 选项导致登录表单刷新而不是发送请求

转载 作者:太空宇宙 更新时间:2023-11-03 14:05:28 25 4
gpt4 key购买 nike

我使用 cloudflare 的“灵活 ssl”作为客户端和我的站点之间的中介。

设置后,我转到浏览器并尝试通过 https 访问我的网站:

https://example.com/login

一切正常。我填写了我的登录信息并成功登录,但不在 http://example.com 上。我手动输入 https://example.com/* 其中 * 是许多其他页面,一切正常。

现在我想重定向所有请求以使用看似有效的 https。所以我在他们的网站上访问我的 cloudflare 帐户并创建一个页面规则:http://example.com/* 始终使用 https。

现在我去 example.com/login 并成功重定向到 https://example.com/login,我填写我的登录信息并提交登录表单,页面刷新,我返回到 https://example.com/login,登录表单为空。

有人知道问题是什么或如何帮助解决问题吗?

我使用 laravel 作为网站的框架,使用 apache 作为网络服务器。

最佳答案

create a page rule : http://example.com/* to always use https

注意到了。请注意,CloudFlare 通过接受 http://example.com/ 上的每个 HTTP 请求来做到这一点* 并返回一个 301 重定向到等效的 HTTPS 请求。浏览器通过向 HTTPS URL 发送 GET 请求来完成重定向。

I fill in my log in information and submit the login form

仔细检查登录表单源,检查登录表单提交到什么URL。我的猜测是表单已提交给 http://example.com/login或类似的东西。 CloudFlare 将接受对 http://example.com/login 的 POST 请求并返回 301 重定向到 https://example.com/login -- 您的浏览器将作为 GET 请求完成,因此不会发送登录数据。

因此,您最好的解决方案是确保您的登录表单 POST 到正确的 HTTPS URL 而不是 HTTP URL。

无论如何,这是我最好的猜测。

how to help troubleshoot?

确保您使用不同的日志文件来区分服务器上的 HTTP 和 HTTPS 请求。

其他一些建议:

  • 获取 Let's Encrypt SSL 证书并将其放在您的站点上,这样 CloudFlare 和您的站点之间的通信就完全是 SSL。 https://letsencrypt.org/
  • 确保为所有 HTTPS 请求启用 HSTS,以便浏览器知道不会向任何 HTTP 网址发送任何请求。
  • 创建一个开发服务器,您可以在其中测试所有这些在没有 CloudFlare 的情况下在浏览器和 Web 服务器之间使用 HTTPS 的情况。一旦你在没有 CloudFlare 的情况下在 HTTPS 模式下全部工作,那么你可以在 CloudFlare 上尝试它,你应该得到基本相同的结果。您的问题出在 HTTP -> HTTPS 开关上,而不是 CloudFlare。

关于apache - 使用 cloudflare flexible ssl 选项导致登录表单刷新而不是发送请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42633428/

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