php - 当端口始终为 80 时重定向 HTTP > HTTPS

标签 php .htaccess http https url-rewriting

我们的应用程序需要将 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/

相关文章:

php - 无法使用 PHP 从 MySQL 查询打印数据

.htaccess - 使用 htaccess 在子目录中安装 Laravel 5 应用程序

.htaccess - 如何使用 .htaccess 从子域重定向到子文件夹

api - 如何使用 Dart http 库、flutter 实现 Post API 调用

php - 如何从 kohana 中的 View 重定向

php - PHP 有没有办法获得累计百分比?

php - .htaccess 身份验证 w/friendly url

ruby-on-rails - 使用正则表达式获取链接

java - 如何通过http发布ByteArrayOutputStream

PHP - MYSQL 查询结果