Перенаправить некоторые URL-адреса HTTP / AAM на HTTPS - PullRequest
0 голосов
/ 04 августа 2020

У меня есть клиент, на котором запущен SharePoint Server 2019 на IIS10, и он хочет перенаправить HTTP-запросы на https для одного из нескольких веб-приложений / сопоставлений альтернативного доступа в своей среде. Итак, веб-приложение http://intranet и http://intranet.domain.com должно быть перенаправлено на https://intranet и https://intranet.domain.com соответственно, но http://mysites, http://mysites.domain.com и http://CentralAdmin: 12345 не должны. Точно так же внутренние сайты SharePoint IIS, такие как Security Token Service, которые находятся на именованных URL-адресах, например:

http://sp19-app: 32843 / SecurityTokenServiceApplication / securitytoken.sv c

, должны быть оставлены в покое . У меня есть внутренний сертификат, созданный центром сертификации для https://intranet, и сертификат Comodo для https://intranet.domain.com на месте, с рабочими AAM SharePoint и привязками IIS, оба работают, можно посетить полный диапазон URL-адресов.

Большинство руководств по переписыванию URL-адресов IIS, включая https://ruslany.net/2009/04/10-url-rewriting-tips-and-tricks/#redirect -https Руслана и этот хорошо написанный: https://www.namecheap.com/support/knowledgebase/article.aspx/9953/38/iis-redirect-http-to-https и этот: http://www.jppinto.com/2010/03/automatically-redirect-http-requests-to-https-on-iis7-using-url-rewrite-2-0/

захватить все URL-адреса на сайте с помощью (. *) Я хочу только захватить и перенаправить только те из них, которые входят в область действия, с помощью этого (intranet)(.)* или ^(http:\/\/intranet)(.)*

и то, и другое, которые я пробовал, и хотя они не перенаправляют важные служебные приложения или URL-адреса личных сайтов, они также не перенаправляют последовательно URL-адреса Intr anet. Я проверил все затронутые URL-адреса на панели тестирования regex101.com, и они выглядят хорошо, но есть вероятность, что либо мое регулярное выражение не так популярно, как я думаю, либо перезапись URL-адреса использует другую реализацию из этого?

Например, в разделе «Условия» я покорно добавил: {HTTPS} шаблон: ^OFF$, что, на мой взгляд, означает «Если ВЫКЛ появляется в начале строки, в конце строки ", что явно вздор. Насколько я понимаю, прочитав topi c, цель условий - создание исключений, и это останавливает перенаправление запросов HTTPS на HTTPS, что очень разумно. Однако мне непонятно, как это происходит с использованием добавленного мной правила.

Фактическое перенаправление на часть: https://{HTTP_HOST}{REQUEST_URI}, что кажется наиболее разумным, поскольку URL-адреса SharePoint будут содержать строки запроса и все такое после? или &.

Скриншот правила перенаправления

Перезапись URL настраивается для каждого сайта IIS, поэтому, возможно, я ни о чем не беспокоюсь, и я не Не нужно изменять регулярное выражение. Если это так, а я подозреваю, что это так, полагаю, я могу просто оставить это. Однако я ненавижу решение, но не знаю, как оно работает, я бы гораздо быстрее смог с уверенностью написать свои правила и быть уверенным, что они будут делать именно то, что я думаю, и почему.

1 Ответ

0 голосов
/ 05 августа 2020

Вам нужно добавить еще одно условие. Вы можете попробовать следующее правило.

    <conditions>
        <add input="{HTTP_HOST}" pattern="^Intranet.(.*)$" />
        <add input="{HTTPS}" pattern="^off$" />
    </conditions>
...