我们的应用程序需要将 HTTP
请求重定向到 HTTPS
。
通常我会使用 RewriteCond
如下。
RewriteCond %{HTTPS} off
我们目前的托管公司的问题是,请求的端口始终是 80。无论我们发送 HTTP
还是 HTTPS
请求,$_SERVER['SERVER_PORT']
始终为 80。
我们可以在 PHP
中处理这个问题,但我们也想强制文件为 HTTPS
。
那么具体的问题。有没有在 .htaccess
中强制使用 HTTPS
而无需使用 RewriteCond
之类的 RewriteCond %{HTTPS}
或 RewriteCond %{SERVER_PORT}
.
最佳答案
您的情况并不少见。试试这个(X-Forwarded-Proto 是用于识别 HTTP 请求的原始协议(protocol)的事实标准):
RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
关于php - 当端口始终为 80 时重定向 HTTP > HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40512023/