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

Мне потребовалось много времени, чтобы понять глобальные правила вместо различий в правилах.

Другие вопросы по тегам