我在我的 ubuntu 虚拟主机文件中设置了一个通用的 http 到 https 重定向,如下所示:
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
#UseCanonicalName Off
#ServerName test.example.com
#ServerAdmin webmaster@localhost
#DocumentRoot /var/www/test.example.com/web
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>
<VirtualHost *:443>
UseCanonicalName Off
ServerName test.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/test.example.com/web
SSLEngine on
SSLCertificateFile /etc/ssl/bcerts/b.crt
SSLCertificateKeyFile /etc/ssl/bcerts/b.key
SSLCertificateChainFile /etc/ssl/bcerts/b.ca-bundle
</VirtualHost>
上面的配置工作正常,除了我有来自 iOS 应用程序的不是 SSL 的 http POST 请求,这些请求被转换为 http GET 请求(大概是因为 302 请求总是会这样做)。但是,我需要 apache 配置以允许 http POST 请求保持 http POST 请求而不更改 iOS 应用程序代码。任何允许这样做的配置?