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

我们的应用程序需要将HTTP请求重定向到HTTPS.
通常我会使用RewriteCond如下.

RewriteCond %{HTTPS} off

当前托管公司的问题是请求的端口始终为80.无论我们发送HTTP还是HTTPS请求都没有关系,$_ SERVER [‘SERVER_PORT’]始终为80.

我们可以在PHP中进行处理,但是我们也想将文件强制为HTTPS.

所以是具体的问题.无论如何,有没有在不使用RewriteCond(例如RewriteCond%{HTTPS}或RewriteCond%{SERVER_PORT})的情况下强制.htaccess中使用HTTPS的方法.

解决方法:

您的情况并不少见.尝试以下操作(X-Forwarded-Proto是用于标识HTTP请求的原始协议的事实上的标准):

RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
上一篇:PHP错误日志级别控制:htaccess与php.ini与代码和virtualhost


下一篇:php-隐藏获取变量