我需要在我的网站上默认使用https,因此我使用了以下.htaccess代码将所有http流量重定向到https
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
除了网站接收到许多POST请求来自旧的http://地址并且在使用301时POST数据丢失之外,一切都很正常。我无法阻止POST请求来自旧的http://地址,因为它们来自基于PHP的脚本(安装在客户端服务器上),所以我的唯一选择似乎是307或308重定向(因为它们保留POST数据)。
然而,重定向307被认为是临时的,而我计划永久使用https,所以这似乎不是最好的选择?当然,我可以使用308,但是这个选项似乎是“新的”,并且并非所有浏览器都支持(根据我在stackoverflow上找到的许多评论)。也许有人知道更好的.htaccess重写规则?
附言:我知道最好的想法是使用301重定向并将脚本修改为默认使用https进行发布(我已经这样做了),但是这可能需要很长时间,而所有客户端都将更新其服务器上的脚本,所以还需要另一个解决方法。