
1 thinkershare 2022-09-18 22:42:41 +08:00 不知道你在说啥, 同时监听 443 和 80 不就好了, 443 的时候走 HTTPS, 80 走 HTTP, 然后不要强制 HSTS 重定向. 难道你是想要最多只允许 POST 可以走 HTTP, 其它类型不允许走 HTTP, 必须走 HTTPS? |
2 eason1874 2022-09-18 23:12:43 +08:00 不关 PHP 的事 你这个应该是代码里的协议没有跟着实际访问协议改变,当访问 https 页面时,页面 post 代码还是提交到 http 就导致重定向 |
3 V1Eerie 2022-09-19 00:29:44 +08:00 via Android 建议前端直接请求 https 的资源 |
4 baobao1270 2022-09-19 03:21:23 +08:00 “保留 http 能正常 POST 请求到 PHP 写的 API 服务” 如果 “http 和 https 双方案 不符合监管要求”的话,那么你这个方案也肯定不符合要求。POST 的数据走 HTTP 就是明文传输。 既然是 POST ,那么大概率是 API 服务,建议在 API Client 里加入 302 跳转的判断 |
5 yin1999 2022-09-19 06:48:19 +08:00 via Android POST 请求是直接向 PHP 发起的?不能用 Nginx 做反向代理? |
7 sparkssssssss 2022-09-19 09:09:56 +08:00 那就 http 处加条规则: ```` set $jump 0; if ($request_method ~* POST) { set $jump "${jump}1"; } if ($jump = "0") { return 301 https://$server_name$request_uri; } location / { proxy_pass xxxx; } ```` |
8 sparkssssssss 2022-09-19 09:11:17 +08:00 貌似 301 是没法带 postdata 的吧? 改成 return 307 |
9 Judoon 2022-09-19 09:22:45 +08:00 301 和 302 换成 308,307 |
10 salmon5 2022-09-19 09:49:45 +08:00 谁发起的 http 请求,改成 https 呗 |
11 salmon5 2022-09-19 09:50:14 +08:00 改不了?发个邮件或者打个电话通知下呗 |
12 julyclyde 2022-09-19 09:56:02 +08:00 那你需要改客户端,建立以 SSL 为基准,拒不支持 plain 的技术体系 301/302/307 别指望能够正常工作。这部分就是越改越乱的 |