仅当使用别名时才重定向到 https

仅当使用别名时才重定向到 https

我有一个 Apache 和 Glassfish 设置,旨在将所有流量重定向到服务器或其别名到 glassfish 端口。这工作得很好,但是我们需要向服务器添加更多服务,因此我们不能只强制所有流量通过一个端口。

我希望的是,如果用户使用服务器的标准名称,它将保留在 apache 中,但如果他们使用服务器的别名,则所有流量都会路由到 glassfish 端口。这怎么可能呢?

这是当前配置

ServerName [name]
ServerAlias [alias]
SSLProxyEngine on
ProxyPreserveHost on
ProxyRequests on
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?[name] [NC]
RewriteRule (.*) https://[name]/$1 [L,R=301] 
#RewriteCond %{HTTPS} off
#ProxyPass / https://[alias]:443/
#ProxyPassReverse / https://[alias]:443/
#Redirect / https://[alias]:443/

最初注释的行被取消注释,这迫使所有流量都转到 443,然后进入 glassfish 端口。这些行被禁用,以允许标准 http 流量按预期工作

答案1

尝试重写 [P] 标志。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?[alias] [NC]
RewriteRule ^/(.*)$ https://[alias]:443/$1 [P]
ProxyPassReverse / https://[alias]:443/

重写代理文档(2.2)

相关内容