IIs 8 перенаправляет URL с http на https
Я только что настроил ssl для моего dmain и Хоста. Я хочу ограничить свой сайт https://www.example.com
только .
Если какой-либо пользователь пытался открыть http://example.com
, www.example.com
, example.com
или https://example.com
он должен быть перенаправлен на https://www.example.com
Перенаправление должно быть только для доменного имени. Остальная часть любого URL-адреса останется как есть.
Например: если пользователь открыл example.com/dir1/page1.aspx
, он должен быть перенаправлен на https://www.example.com/dir1/page1.aspx
Я хочу сделать это с помощью правил перезаписи IIS.
2 ответа:
Я решил эту проблему, добавив этот код в файл
web.config
в корневом каталоге домена.
- Первое правило соответствует url, если оно не начинается С
www
что бы то ни было этоhttp
илиhttps
Второе правило соответствует url, если оно начинается С
www
, но это не такhttps
<system.webServer> <rewrite> <rules> <rule name="Redirect from non www" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTP_HOST}" pattern="^example.com$" /> </conditions> <action type="Redirect" url="https://www.example.com/{R:0}" redirectType="Permanent" /> </rule> <rule name="Redirect from non https" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTPS}" pattern="^OFF$" /> <add input="{HTTP_HOST}" pattern="^www.example.com$" /> </conditions> <action type="Redirect" url="https://www.example.com/{R:0}" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer>
Добавьте это в свой Глобал.файл asax, если вы не имеете контроля над iis или используете общий хостинг, где хостинговая компания не позволяет вам изменять настройки.
protected void Application_BeginRequest(object sender, EventArgs e) { if (HttpContext.Current.Request.IsSecureConnection.Equals(false) && HttpContext.Current.Request.IsLocal.Equals(false)) { Response.Redirect("https://" + Request.ServerVariables["HTTP_HOST"] + HttpContext.Current.Request.RawUrl); } }
Отредактировано:
Для канонического тега (www.example.com) вам не нужно вносить какие-либо изменения в свой код. в вашей панели plesk/odin (даже в общем хостинге) есть настройка для него, чтобы выбрать url-адрес по умолчанию для вашего приложения.
Он автоматически перенаправит ваш сайт на www.example.com
Настройки в разделе настройки хостинга вашего сайта. выберите предпочтительный вариант домена для www