Итак, я искал поисковые запросы и смотрел похожие темы на SO, но не нашел решение и решил, что могу просто спросить.Web.config перенаправляет с http на https для некоторого подсайта
У меня есть сайт с несколькими дочерними сайтами/страницами. В моем файле Web.config для мастер-сайта (затрагивающий все дочерние сайты/страницы) У меня есть следующее правило:
<rule name="Redirect to https">
<match url="(.*)"/>
<conditions>
<add input="{HTTPS}" pattern="Off"/>
<add input="{REQUEST_METHOD}" pattern="^get$|^head$"/>
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}"/>
</rule>
Это правило перенаправляет все запросы на любую страницу/сайт под основной сайт https:// которые были намерены в течение некоторого времени.
Теперь, однако, у меня есть 4 дочерних сайта (4 страницы под основным сайтом с их собственными URL-адресами), которые я не хочу использовать https: // для. Позвоните им на www.apa.com, www.bepa.com, www.cepa.com, www.depa.com. Я прокомментировал комментарий this similar topic, в котором говорится, что можно сделать исключения в таких правилах, но я не получил его для работы.
Поэтому я предполагаю, что я ищу либо отдельное правило, либо какое-то исключение для этого текущего правила, которое хранит http для моих четырех новых дочерних сайтов и перенаправляет все остальные сайты/страницы на https (как и в настоящее время).
EDIT: Так что я принял другой подход. Теперь я вместо этого пытаюсь сказать, какие сайты должны перенаправлять на https. Следующее регулярное выражение, кажется, работает идеально в регулярном выражении тестера, но при использовании в файле web.config, ничего не происходит:
^(https?:\/\/)?(something\.somethingelse\.com\/?)(.*)$
Если регулярное выражение соответствует, Id хотел перенаправить все запросы HTTPS, и если это не соответствует, он должен оставаться http. В файле web.config это выглядит так:
<rewrite>
<rules>
<rule name="Redirect to https">
<match url="/^(https?:\/\/)?(something\.somethingelse\.com\/?)(.*)$/"/>
<conditions>
<add input="{HTTPS}" pattern="Off"/>
<add input="{REQUEST_METHOD}" pattern="^get$|^head$"/>
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}"/>
</rule>
</rules>
</rewrite>
Однако, похоже, это ничего не делает. Его похоже на то, что невозможно сопоставить полный URL-адрес или что-то в этом роде.