Member 12660995 Ответов: 0

Web.config переписывает правила добавления дополнительных URL-адресов / on, содержащих www


У меня есть веб-сайт, который имеет SSL, который я автоматически удаляю в начале www с момента посещения пользователем нашего сайта.

Поэтому, когда пользователь вводит www.my-example.com они перенаправляются на https://my-example.com

Вот правило, которое я написал, чтобы достичь этого.

<rule name="Remove www.">
   <match url="(.*)" />
   <conditions>
     <add input="{HTTP_HOST}" pattern="^www.(.*)" />
   </conditions>
   <action type="Redirect" url="http://{C:1}/{URL}" />
 </rule>


Это прекрасно работает в большинстве случаев, но я сталкиваюсь с проблемой. У нас есть много внешних источников, ссылающихся на отдельные страницы, которые мы сделали вот так: https://www.my-example.com/example-post

Он правильно удаляет www но добавляет второй / перед постом с примером. Таким образом, приведенный выше url-адрес будет перенаправлен на https://my-example.com//example-post

Мне нужно, чтобы этого не случилось. Есть предложения?

Что я уже пробовал:

У меня есть только 2 правила перезаписи в моем файле web.config. Вот они как есть

<rule name="Force HTTPS Redirection" enabled="true" stopProcessing="true">
  <match url="^$" ignoreCase="false"/>
  <conditions>
    <add input="{HTTP_HOST}" pattern="localhost" negate="true" />
    <add input="{HTTPS}" pattern="^OFF$"/>
  </conditions>
  <action type="Redirect" url="https://{HTTP_HOST}/" redirectType="Permanent"/>
</rule>
<rule name="Remove www.">
  <match url="(.*)" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^www.(.*)" />
  </conditions>
  <action type="Redirect" url="http://{C:1}/{URL}" />
</rule>

0 Ответов