Перенаправление URL-адреса PowerShell из корневого каталога в подкаталог

#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"