azure gateway https后端池和htaccess重定向循环

时间:2018-05-28 23:56:04

标签: .htaccess azure azure-application-gateway

我有htaccess重写规则:

RewriteCond %{HTTP_HOST}: ^(?:www\.)?samplesite\.net
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

在运行IIS的两个azure vm上。 我有一个位于前面的应用程序网关,它有一个后端Https池,带有两个azure vms的服务器证书。

我在网关上有一个多站点https监听器,它使用特定的URI www.samplesite.net监听到网关的https流量。 有一个使用backendHttps池的附加规则。

虚拟机托管多个站点,我只想将HTTP重定向到这个站点的HTTPS。我在Azure网关上为监听器提供了www.samplesite.net的私钥。

如果我直接指向任何VM,我已成功重定向到HTTPS。如果我指向网关,我收到的重定向错误太多了。

如果我不在服务器上重写,我可以通过网关直接转到HTTPS或HTTP而没有问题。

如果我有端到端加密,为什么要获得此重定向?

编辑: 关于使用gateway rules重定向流量:

  

规则按列出的顺序处理,流量为   指导使用匹配的第一条规则,无论特异性如何。   例如,如果您有使用基本侦听器和规则的规则   在同一个端口上使用多站点侦听器,规则与   必须在具有基本规则的规则之前列出多站点侦听器   侦听器,以使多站点规则按预期运行。

EDIT2: 如果有人有兴趣,我必须这样做:

RewriteCond %{HTTP_HOST}: ^(?:www\.)?samplesite\.net
RewriteCond %{HTTP_X_FORWARDED_PROTO} ^http$
RewriteRule ^(.*)$ https://www.samplesite.net%{REQUEST_URI} [L,R=302]

1 个答案:

答案 0 :(得分:0)

我必须检查从网关转发的标头

> RewriteCond %{HTTP_HOST}: ^(?:www\.)?samplesite\.net 
> RewriteCond %{HTTP_X_FORWARDED_PROTO} ^http$ 
> RewriteRule ^(.*)$ https://www.samplesite.net%{REQUEST_URI} [L,R=302]

https://www.helicontech.com/isapi_rewrite/doc/examples.htm https://stackoverflow.com/a/41512717/7889282

https://sitecoreblog.marklowe.ch/2017/01/using-ip-geolocation-and-ssl-on-azure/