RewriteRule 不适用于 apache https 请求

RewriteRule 不适用于 apache https 请求

我们需要将所有 http 请求转换为 https 请求,并将 .xyz.com 附加到服务器名称。为此,我编写了以下规则,该规则适用于 http 请求,但不适用于 https 请求。

RewriteRule ^(.*)$ https://%{SERVER_NAME}\.xyz.com%{REQUEST_URI} [R]

如果我输入 http:// lvldraspnetserv01,它会根据要求重定向到 https:// lvldraspnetserv01.xyz.com。

但是,如果我输入 https:// lvldraspnetserv01,它不会重定向到 https:// lvldraspnetserv01.xyz.com,从而导致证书失败。

答案1

尝试一下:

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} **Insert current condition here ***
RewriteRule ^(.*)$ https://%{SERVER_NAME}\.xyz.com%{REQUEST_URI} [R]

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} **Insert current condition here, but for https***
RewriteRule ^(.*)$ https://%{SERVER_NAME}\.xyz.com%{REQUEST_URI} [R]

答案2

我有同样的问题。

添加QSA标志解决了问题

RewriteRule ^(.*)$ https://%{SERVER_NAME}\.xyz.com%{REQUEST_URI} [R, QSA]

很奇怪的行为不是吗?:)^^

相关内容