Специальное перенаправление без www на www под Amazon Elastic Load Balancer - PullRequest
2 голосов
/ 17 октября 2011

Как создать перенаправление 301 в IIS7, используя расширение Rewrite Rule для IIS (запись в web.config), которое позволит перенаправлять не www на www - НО, я не хочу использовать (. *), Я хотите, чтобы средство переопределения URL игнорировало URL-адреса, такие как DNS, чтобы оно могло работать в Amazon Load Balancer. Без этого Amazon Load Balancer не сможет прочитать файл проверки работоспособности, поскольку он будет перенаправлен и вместо 200OK получит 301.

Так что мне действительно нужно правило, которое будет соответствовать URL-адресу, содержащему mydomain.com, или правилу, которое начинается с него, чтобы оно не зацикливалось.

Нынешнее правило не годится:

<rewrite>
  <rules>
    <rule name="CanonicalHostNameRule1">
       <match url="(.*)" />
         <conditions>
           <add input="{HTTP_HOST}" pattern="^www\.mydomain\.com$" negate="true" />
         </conditions>
         <action type="Redirect" url="http://www.mydomain.com/{R:1}" />
    </rule>
 </rules>
</rewrite>

Это перенаправит URL-адреса, такие как dns.amzn.com, на www.mydomain.com - я пробовал это на IIS7.

Нужно лучшее решение

1 Ответ

1 голос
/ 01 февраля 2012

вы пришли с решением ..

Я добавил условие, используя {HTTP_USER_AGENT}, чтобы оно не совпадало с ELB (пользовательский агент). Это помешало правилу работать на ELB, но я сейчас проверяю это.

ура

Добавлено это также:

<rule name="Redirect to HTTPS" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="^OFF$" />
<add input="{HTTP_USER_AGENT}" pattern="ELB-HealthChecker" negate="true" />
<add input="{HTTP_X_FORWARDED_PROTO}" pattern="HTTPS" negate="true" />                        
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule> 

Бит, который вы хотите

<add input="{HTTP_USER_AGENT}" pattern="ELB-HealthChecker" negate="true" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...