2013-10-24 1 views
1

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

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

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

enter image description here

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

Как раз для того чтобы объяснить немного больше, часть dudalina также динамична. Dudalina - это имя магазина, и оно будет соответствующим образом изменяться с магазином. Итак, у нас может быть что-то вроде http://bestbuy.proveagora.com или что-то еще, и эти шаблоны работают со всеми опциями.

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

Любая помощь

EDIT

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> 
+0

Можете ли вы опубликовать результат от 'web.config' файл? Ваша конечная цель - избегать любого пользователя, чтобы добраться до '* .dudalina.proveagora.com' с помощью https, и если это произойдет, перенаправить их на' dudalina.proveagora.com', поддерживая протокол https, правильно? – cheesemacfly

+0

@cheesemacfly вы правы! Я отправлю xml web.config на сообщение! Спасибо –

ответ

0

Здесь вы идете:

<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

+0

можем ли мы сделать эту динамику? если dudalina - это еще что-то вроде cheesemacfly, мне нужно будет перенаправить на http: https: //cheesemacfly.proveagora.com как мы можем это сделать? –

+1

Вы имеете в виду, что часть 'dudalina' является динамичной в условии и правилом перенаправления, поэтому вам нужно только изменить ее в одном месте? – cheesemacfly

+0

Я читал о справочной группе. Что-то вроде {R: 1} {R: 2} и т. Д. Итак, при совпадении url я написал свои собственные правила, разделяя группы. Первая часть, которую я получил, - дудалина. Пока не будет хорошо. Но с группами правила никогда не работают. В теге действий я могу использовать {R: 1}, ссылаясь на первую группу регулярных выражений моего шаблона с помощью {R: 1}. Как и мое второе изображение. Его, как я читал в блогах, но ничего не работает. Дудалина может быть другим именем. Dudalina - это имя магазина, и любой магазин может использовать наш plataform электронной коммерции! –