У меня есть веб-приложение, которое находится в / subdir1 / subdir2 /. Я хотел бы упростить его для пользователей, добавив поддомен sub.domain.com, но он продолжает зацикливаться. Я пытался добавить дополнительные правила, чтобы предотвратить это, но без радости.
Итак, что происходит http://sub.domain.com/subdir1/subdir2/subdir1/subdir2/subdir1/subdir2/subdir1/subdir2/subdir1/subdir2/subdir1/subdir2/
Мое правило в web.config:
<rule name="subdomain" stopProcessing="true">
<match url="^(?!sub/)(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="sub.domain.com/subdir1/subdir2/" negate="true" />
<add input="{HTTP_HOST}" pattern="sub.domain.com" />
</conditions>
<action type="Rewrite" url="subdir1/subdir2/" appendQueryString="true" />
</rule>
Любые идеи?
Изменить: Итак, что я действительно пытаюсь сделать, так это упростить пользователям. Прямо сейчас они должны ввести www.domain.com/subdir1/subdir2/, чтобы получить доступ к странице входа для продукта. Что я хотел сделать, так это создать единственный поддомен, который будет перезаписан на указанную выше ссылку. Вместо того, чтобы вводить длинный URL-адрес, просто перейдите на sub.domain.com, и он будет перенаправлять или перезаписывать адрес www.domain.com/subdir1/subdir2/. Надеюсь, это проясняет мое желание.
Спасибо!
{HTTP_HOST}
представляет только хост-часть URI:
http://[HTTP_HOST]/subdir/index.html
.
Таким образом, ваше первое условие не имеет значения (оно никогда не будет оценивать как ложное).
Вы хотите {PATH_INFO}
:
<add input="{PATH_INFO}" pattern="^/subdir1/subdir2" negate="true" />
Фактически говоря: «Если эта часть URL: http://sub.domain.com[PATH_INFO]
начинается с "/ subdir1 / subdir2", не перезаписывайте
Если вы хотите /additional/path/to/content.html
переписан на /subdir1/subdir2/additional/path/to/content.html
вам понадобится обратная ссылка на матч также:
<action type="Rewrite" url="subdir1/subdir2/{R:0}" appendQueryString="true" />