В основном мне нужно узнать, как поместить это в команду (ы) appcmd
<rewrite>
<globalRules>
<rule name="X-FORWADED-PROTO">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_X_FORWARDED_PROTO}" pattern="https" />
</conditions>
<action type="None" />
<serverVariables>
<set name="HTTPS" value="on" />
<set name="SERVER_PORT" value="443" />
</serverVariables>
</rule>
</globalRules>
<allowedServerVariables>
<add name="HTTPS" />
<add name="SERVER_PORT" />
<add name="HTTP_COOKIE" />
<add name="RESPONSE_CACHE_CONTROL" />
<add name="RESPONSE_SET_COOKIE" />
</allowedServerVariables>
<outboundRules>
<preConditions>
</preConditions>
</outboundRules>
</rewrite>
Мы используем IIS6, и у меня получилось создать правило, но я не могу добавить условия и т. Д.
Это работает:
.\appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='X-FORWARDED-PROTO',enabled='True']" /commit:apphost
Но тогда следующие строки не
.\appcmd.exe set config -section:system.webServer/rewrite/globalRules.[name='X-FORWARDED-PROTO'] /match.url:"(.*)" /match.ignoreCase:true /commit:apphost
.\appcmd.exe set config -section:system.webServer/rewrite/globalRules.[name='X-FORWARDED-PROTO'].conditions/add /+"[input='{HTTP_X_FORWARDED_PROTO}',pattern='https']" /commit:apphost
.\appcmd.exe set config -section:system.webServer/rewrite/globalRules.[name='X-FORWARDED-PROTO'].action /+"[type='None']" /commit:apphost
Он стонет, что не может найти имя. Я даже не уверен, что это даст мне то, что мне нужно.
Я написал playbook на Ansible, который создает веб-сайт, пул приложений, привязки, установку ssl, установку модулей и т. Д. Мне просто нужно автоматизировать эту последнюю перезапись URL, и я готов.
Жду ответа от кого-нибудь. Стив