Как я могу сделать 301 перенаправление вместо 302, когда несколько доменов совместно используют один и тот же сайт, размещенный в IIS?
У меня есть несколько доменов, разделяющих один и тот же сайт, и я использую default.asp
в качестве файла по умолчанию, где я тестирую переменную SERVER_NAME
и использую Response.Redirect
для перенаправления на домашнюю страницу запрошенного сайта.
Проблема в том, что этот тип перенаправления вызывает 302
код состояния. Даже при наличии раздела перезаписи в моем web.config, где я создал одно правило перенаправления для каждого сайта с помощью redirectType="Permanent"
, возвращается код состояния 302
.
Это плохо сказывается на ранжировании страниц в Google индекс. Кто-нибудь знает способ решить эту проблему и вернуть 301
код состояния?
2 answers
Я предполагаю, что вы используете классический ASP (не .NET), поскольку вы ссылаетесь на default.asp, а не на default.aspx.
Вместо того, чтобы использовать response.redirect
и рассчитывать, что ваш файл веб-конфигурации изменится с 302 на 301, попробуйте добавить 301 в объект ответа перед перенаправлением пользователя.
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "new_page_name.asp"
%>
Если вы действительно используете.NET, затем используйте следующее:
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://example.com");
}
</script>
См. https://docs.microsoft.com/en-us/previous-versions/iis/6.0-sdk/ms525844 (v=против 90) для получения дополнительной информации.
Я решил проблему с ответом.Перенаправление постоянного использования Asp.NET . Этот метод возвращает код состояния 301.