#powershell #iis #http-redirect
Вопрос:
Я пытаюсь создать сценарий развертывания в PowerShell, чтобы заменить ручную работу с использованием пользовательского интерфейса IIS (это для контейнера Docker). Единственный шаг, который я не могу найти, — это способ перехода пользователей с корневого URL-адреса в папку приложения. Поэтому, если пользователи перейдут к www.site.com, они идут в www.site.comWebSampleTest.
Это то, что у меня есть до сих пор:
Set-WebConfiguration system.webServer/httpRedirect "IIS:sitesDefault Web Site" -Value @{enabled="true";destination="WebSampleTest";exactDestination="true";httpResponseStatus="Permanent"}
Ответ №1:
Попробуйте использовать это:
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site' -filter "system.webServer/httpRedirect" -name "enabled" -value "True"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site' -filter "system.webServer/httpRedirect" -name "destination" -value "websampletest"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site' -filter "system.webServer/httpRedirect" -name "httpResponseStatus" -value "Permanent"
Комментарии:
1. Брюс Чжан, есть вероятность, что это не сработает на локальном хосте:порт? Я запускаю строки Set-WebConfigurationProperty после выполнения команды New-WebApplication. Все равно не везет.
2. Когда вы запускаете свойство set-webconfigurationProperty, есть ли какая-либо информация об ошибке? Какую команду нового веб-приложения вы запустили?
3. Похоже, в моем сценарии PowerShell мне не хватало следующего: Добавить-WindowsFeature Web-Http-Перенаправление (см. Мой пост ниже)
Ответ №2:
Забыл добавить функцию WindowsFeature ниже:
Add-WindowsFeature Web-Http-Redirect
А затем добавил следующий код для фактического перенаправления:
Set-WebConfigurationProperty -pspath 'IIS:sitesDefault Web Site' -filter "system.webServer/httpRedirect" -name "enabled" -value "True"
Set-WebConfigurationProperty -pspath 'IIS:sitesDefault Web Site' -filter "system.webServer/httpRedirect" -name "destination" -value "WebSampleTest"
Set-WebConfigurationProperty -pspath 'IIS:sitesDefault Web Site' -filter "system.webServer/httpRedirect" -name "childOnly" -value "true"