.Net web.config соответствует базовому URL - PullRequest
0 голосов
/ 16 января 2019

У нас есть CMS, где мы размещаем несколько сайтов в разных поддоменах, но с одним и тем же основным доменом:

Пример:

sub1.mysite.com

sub2.mysite.com

Это одно и то же приложение, они используют один и тот же web.config. Поэтому, когда я пытаюсь написать правило перезаписи, и аналогичное совпадение существует на другом сайте субдомена, перезапись вступает в силу для всех сайтов.

Что я хочу, чтобы это совпадение на домене базового уровня (mysite.com или sub.mysite.com) и сделать мои правила перезаписи?

Все ответы, которые я нахожу, говорят, чтобы использовать что-то вроде

 <match url="^(.*)$" ignoreCase="true" />
 or <match url="^mypage/?(.*)$" />
 or <match url="^mypage/mysubpage//?(.*)$" />

Но проблема с рассмотрением любого из них заключается в том, что карат '^' является своего рода символом подстановки, а не специфичным для домена / субдомена.

Допустим, я хочу иметь правило перезаписи для

mysite.com / о-нас

и сайт поддомена имеет страницу с таким же именем

sub1.mysite.com / о-нас

НО Я ТОЛЬКО хочу переписать для основного mysite.com/about-us и НЕ иметь сайт sub1.mysite.com/about-us с таким же правилом перезаписи.

Как мне сказать, что я хочу, чтобы mysite.com/about-us переписывал на mysite.com/about/about-us?

1 Ответ

0 голосов
/ 17 января 2019

Если вы включили «HTTP_HOST» в свое правило, вы можете ограничить его основным URL-адресом.

например. ниже у меня основной домен настроен как replicant.test , и перенаправление НЕ будет работать на подобласти типа "site1.replicant.test.

        <rule name="Main site redirect" stopProcessing="true">
            <match url="^article/([0-9]+)/([_0-9a-z-]+)" />
            <action type="Rewrite" url="article.aspx?id={R:1}&amp;title={R:2}" />
            <conditions>
                <add input="{HTTP_HOST}" pattern="^replicant\.test$" />
            </conditions>
        </rule>

Основное правило перенаправления было взято из https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module.

...