IIs 8 Перенаправление URL с http на https
Я только что настроил ssl для моего dmain и host. Я хочу ограничить свой сайт только 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.
Ответы
Ответ 1
Я решил эту проблему, добавив этот код в файл 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>
Ответ 2
Добавьте это в свой файл global.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 panel/odin (даже на общем хостинге) есть параметр, чтобы выбрать URL-адрес по умолчанию для вашего приложения.
Он автоматически перенаправит ваш сайт на www.example.com
Настройки в настройках хостинга вашего сайта.
выберите предпочтительный вариант домена для www