Как я могу сделать 301 перенаправление вместо 302, когда несколько доменов совместно используют один и тот же сайт, размещенный в IIS?


У меня есть несколько доменов, разделяющих один и тот же сайт, и я использую default.asp в качестве файла по умолчанию, где я тестирую переменную SERVER_NAME и использую Response.Redirect для перенаправления на домашнюю страницу запрошенного сайта.

Проблема в том, что этот тип перенаправления вызывает 302 код состояния. Даже при наличии раздела перезаписи в моем web.config, где я создал одно правило перенаправления для каждого сайта с помощью redirectType="Permanent", возвращается код состояния 302.

Это плохо сказывается на ранжировании страниц в Google индекс. Кто-нибудь знает способ решить эту проблему и вернуть 301 код состояния?

Author: dan, 2021-01-24

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) для получения дополнительной информации.

 2
Author: Trebor, 2021-01-25 03:32:26

Я решил проблему с ответом.Перенаправление постоянного использования Asp.NET . Этот метод возвращает код состояния 301.

 0
Author: user1780087, 2021-01-25 20:00:43