Как перенаправить iisstart.htm через командную строку? - PullRequest
0 голосов
/ 04 апреля 2019

Я использую iis10 на Windows Server 2016. Мне нужно перенаправить iisstart.htm (целевая страница iis по умолчанию) на другой URL. Есть ли способ сделать это с помощью командной строки? Предпочтительно powershell / appcmd.

Самой близкой вещью, которую я нашел, была эта команда, но это не то, что мне нужно, потому что она перенаправляет любой запрос на этот URL, и мне нужно перенаправлять, только если в URL не было запрошено никакого конкретного веб-приложения.

Set-WebConfiguration system.webServer/httpRedirect "IIS:\sites\Default Web Site" -Value @{enabled="true";destination="domain.com";exactDestination="true";httpResponseStatus="Permanent"}

iisstart.htm redirect

1 Ответ

0 голосов
/ 04 апреля 2019

Единственная причина, по которой IISStart.htm является целевой страницей по умолчанию, заключается в том, что она настроена как документ по умолчанию. Если все, что вы хотите сделать, это перенаправить в другой файл, используйте документ по умолчанию. Читайте об этом здесь (https://docs.microsoft.com/en-us/iis/configuration/system.webserver/defaultdocument/), но несколько сценариев:

Очистить все записи в документе по умолчанию

Remove-WebConfigurationProperty  -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site'  -filter "system.webServer/defaultDocument/files" -name "."

Добавить новый документ по умолчанию

Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site'  -filter "system.webServer/defaultDocument/files" -name "." -value @{value='MySpecialLandingPage.html'}

Судя по всему, вы хотите перенаправить в папку, например OWA. Технически это может быть возможно с использованием HTTPRedirect (с использованием конкретной конфигурации файла), но даже если это возможно, я настоятельно не рекомендую использовать эту функцию. Вместо этого я бы порекомендовал использовать URL Rewrite, который, к сожалению, доступен для загрузки здесь: https://www.iis.net/downloads/microsoft/url-rewrite По моему мнению, URL Rewrite должен быть доступен на всех серверах IIS.

Несколько хороших примеров того, что вы можете сделать с перезаписью URL, можно найти здесь: https://ruslany.net/2009/04/10-url-rewriting-tips-and-tricks/

В противном случае конкретное правило, которому вы хотите, я считаю, таково: 1) Совпадение только по URL, без указания файла или папки (только http://hostname/)). 2) Перенаправить эти запросы на http://hostname/owa/

Пример сценария перезаписи URL

Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site'  -filter "system.webServer/rewrite/rules" -name "." -value @{name='RedirectDefaultDocument';stopProcessing='True'}
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site'  -filter "system.webServer/rewrite/rules/rule[@name='RedirectDefaultDocument']/match" -name "url" -value "^$"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site'  -filter "system.webServer/rewrite/rules/rule[@name='RedirectDefaultDocument']/action" -name "url" -value "owa/"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site'  -filter "system.webServer/rewrite/rules/rule[@name='RedirectDefaultDocument']/action" -name "appendQueryString" -value "False"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site'  -filter "system.webServer/rewrite/rules/rule[@name='RedirectDefaultDocument']/action" -name "redirectType" -value "Temporary"

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site'  -filter "system.webServer/rewrite/rules/rule[@name='RedirectDefaultDocument']/action" -name "type" -value "Redirect"

...