.NET MVC 2 RequireHttps - Как перенаправить www.mysite.com на mysite.com - PullRequest
1 голос
/ 01 ноября 2010

В .NET MVC 2 вы можете применить атрибут <RequireHttps()>, чтобы сделать метод защищенным с помощью SSL.

<RequireHttps()>
Function Index() As ActionResult
    Return View()
End Function

Допустим, ваш SSL-сертификат выдан для mysite.com. Если пользователь заходит на ваш сайт, введя http://www.mysite.com, <RequireHttps()> перенаправит их на https://www.mysite.com, что заставит браузер отобразить предупреждение о недействительном сертификате.

Какой лучший способ отрубить www. префикс при использовании <RequireHttps()>?

Ответы [ 2 ]

1 голос
/ 01 ноября 2010

Я нахожусь на IIS 7 и имею доступ к модулю перезаписи URL http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/.

Я решил эту проблему, поместив это в файл web.config приложения MVC 2:

<configuration>
...
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="CanonicalHostNameRuleMain" stopProcessing="true">
          <match url="(.*)" />
          <conditions logicalGrouping="MatchAny">
            <add input="{HTTP_HOST}" pattern="^mysite\.com$" negate="true" />
            <add input="{HTTPS}" pattern="^off$" />
          </conditions>
          <action type="Redirect" url="https://mysite.com/{R:1}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

http://mysite.com -> https://mysite.comhttp://www.mysite.com -> https://mysite.comhttps://www.mysite.com -> https://mysite.com

Это просто и работает, но было бы неплохо иметь какое-то элегантное решение только для MVC.

1 голос
/ 01 ноября 2010

Решение состоит в том, чтобы всегда (например, когда пользователь впервые заходит на версию www) перенаправить пользователя на версию вашего сайта без www. Таким образом, ваш атрибут Требуется Https будет работать.

Вы можете сделать это в IIS, см. Здесь: http://forums.iis.net/t/1154053.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...