UrlRewrite через appcmd
Я хочу создать URL urlrewrite, используя appcmd для перенаправления всех запросов от
Http://
в
https://
Я пытался гуглить, но ничего не нашел. Не могли бы вы дать мне какой-нибудь основной пример?
2 ответа
Получил работу с этим:
appcmd.exe set config -section:system.webServer/rewrite/rules /+"[name='http_redirect',enabled='True']" /commit:apphost
appcmd.exe set config -section:system.webServer/rewrite/rules.[name='http_redirect'] /match.url:"(.*)" /match.ignoreCase:true /commit:apphost
appcmd.exe set config -section:system.webServer/rewrite/rules.[name='http_redirect'].conditions/add /+"[input='{HTTPS}',pattern='off']" /commit:apphost
appcmd.exe set config -section:system.webServer/rewrite/rules.[name='http_redirect'].action /+"[type='Redirect',url='https://{HOST_NAME}/{R:1}',redirectType='Found']" /commit:apphost
Эта ссылка может помочь при создании скриптов appcmd.
Для того, чтобы кто-то еще смотрел (как я), вы можете сделать следующее, чтобы вставить новое правило в начало, конец или определенную позицию в списке, так как простое добавление его в конец по умолчанию может привести к тому, что правило не будет быть пораженным:
appcmd.exe set config -section:system.webServer/rewrite/rules /+"[@start,name='http_redirect',enabled='True']" /commit:apphost
appcmd.exe set config -section:system.webServer/rewrite/rules /+"[@end,name='http_redirect',enabled='True']" /commit:apphost
appcmd.exe set config -section:system.webServer/rewrite/rules /+"[@2,name='http_redirect',enabled='True']" /commit:apphost
Источник:
appcmd.exe set config /?
В моем случае синтаксис немного отличается, так как я хотел изменить правило перезаписи URL на уровне корня (сервера).
appcmd set config -section:system.webServer/rewrite/globalRules -[name='myRule'].action.url:http://myRewrite /commit:apphost
Мне потребовалось много времени, чтобы понять глобальные правила вместо различий в правилах.