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
coolloves 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
coolloves 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 别指望能够正常工作。这部分就是越改越乱的 |