Перезапись URL-адреса в IIS всегда завершается ошибкой при изменении шаблона

Я пытаюсь решить проблему перезаписи, но это мой первый раз, и я думаю, что делаю что-то очень неправильно.

Несколько пользователей нашего портала пытаются перейти, набрав https://www.dudalina.proveagora.com. вместо этого правильный https://dudalina.proveagora.com. У нас есть SSL только для *.proveagora.com, поэтому я начал пробовать перенаправлять пользователей, которые вводят неверный URL. Здесь печать перезаписи работает отлично: введите здесь описание изображения

но некоторые пользователи вводят https://, а некоторые пользователи вводят http://. Таким образом, я попытался изменить шаблон.

введите здесь описание изображения

Я не знаю почему, но используя второй шаблон, URL https://www.dudalina.proveagora.com больше не перенаправляет.

Просто чтобы объяснить немного больше, часть дудалины тоже динамична. Дудалина — это название магазина, и оно будет соответственно меняться в зависимости от магазина. Таким образом, у нас может быть что-то вроде http://bestbuy.proveagora.com или что-то еще, и это сильно работает со всеми вариантами.

Я знаю, что пользователь не может ввести www.bestbuy.proveagora.com, но он это делает, и нам нужно, чтобы это работало! :(

Любая помощь?

ИЗМЕНИТЬ

XML Web.Config

     <rewrite>
        <rules>
            <rule name="RemoveWWWPrefix" stopProcessing="true">
                <match url="(.*)" negate="false" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
                    <add input="{HTTP_HOST}" pattern="^(https\:\/\/|https\:\/\/)?([a-zA-Z]+\.)?(proveagora\.com){1}(\/.*)?$" ignoreCase="false" negate="true" />
                </conditions>
                <action type="Redirect" url="http://dudalina.proveagora.com" appendQueryString="false" />
            </rule>
        </rules>
    </rewrite>

person Leandro De Mello Fagundes    schedule 24.10.2013    source источник
comment
Можете ли вы опубликовать результат из файла web.config? Ваша конечная цель — не допустить, чтобы какой-либо пользователь достиг *.dudalina.proveagora.com с помощью https, и, если это произойдет, перенаправить их на dudalina.proveagora.com с сохранением протокола https, верно?   -  person cheesemacfly    schedule 25.10.2013
comment
@cheesemacfly ты прав! Я опубликую xml web.config на почте! Спасибо   -  person Leandro De Mello Fagundes    schedule 25.10.2013


Ответы (1)


Ну вот:

<rule name="RemoveWWWPrefix" stopProcessing="true">
  <match url="(.*)" negate="false" />
  <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
    <add input="{HTTP_HOST}" pattern="^(.+\.)proveagora\.com$" />
    <add input="{HTTP_HOST}" pattern="^dudalina\.proveagora\.com$" negate="true" />
    <add input="{HTTPS}" pattern="^ON$" />
  </conditions>
  <action type="Redirect" url="https://dudalina.proveagora.com" appendQueryString="false" />
</rule>

Он проверит, что используется протокол HTTPS и что поддомен proveagora.com присутствует и отличается от dudalina.

Если это так, он перенаправляет на https://dudalina.proveagora.com

person cheesemacfly    schedule 25.10.2013
comment
мы можем сделать это динамически? если дудалина - это что-то другое, например, cheesemacfly, мне нужно перенаправить на http|cheesemacfly.proveagora.com, как мы так делаем?? - person Leandro De Mello Fagundes; 28.10.2013
comment
Вы имеете в виду, что часть dudalina является динамической в ​​условии и правиле перенаправления, поэтому вам нужно изменить ее только в одном месте? - person cheesemacfly; 28.10.2013
comment
Я читал о референтной группе. Что-то вроде {R:1} {R:2} и т. д. Итак, в адресе соответствия я написал свои правила, разделив группы. Первая часть, которую я получил, это дудалина. Пока есть ок. Но с группами правила никогда не работают. В теге действия я могу использовать {R:1}, ссылаясь на первую группу регулярных выражений моего шаблона с помощью {R:1}. Как мой второй образ. Как я читал в блогах, но ничего не работает. Дудалина может быть и другим названием. Dudalina — это название магазина, и любой магазин может использовать нашу платформу электронной коммерции! - person Leandro De Mello Fagundes; 29.10.2013
comment
{R:1} называется обратной ссылкой. Если вы хотите сделать обратную ссылку на что-то из условий, вы можете использовать {C:1}. Я не уверен, что это отвечает на ваш вопрос. - person cheesemacfly; 30.10.2013