Ознакомьтесь с этой моей статьей, в которой представлен ряд различных способов избежать дублирования URL-адресов на вашем сайте ASP.NET: Методы предотвращения дублирования URL-адресов на вашем веб-сайте .Ниже я кратко изложил различные методы, но см. Статью для более углубленного изучения, а также для демонстрационного примера веб-сайта ASP.NET.
Выпуск постоянных перенаправлений из ASP.NET
Вы можете проверить входящий URL-адрес для каждого запроса в обработчике событий Application_BeginRequest
вашего файла Global.asax
.Если в URL отсутствует начальный www.
, вы можете добавить его и сделать постоянное перенаправление на новый URL.
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (Request.Url.Authority.StartsWith("www"))
return;
var url = string.Format("{0}://www.{1}{2}",
Request.Url.Scheme,
Request.Url.Authority,
Request.Url.PathAndQuery);
Response.RedirectPermanent(url, true);
}
Перезапись URL-адресов в каноническую форму с помощью модуля перезаписи URL-адреса IIS 7
Если на вашем веб-сайте установлены IIS7 и Microsoft Модуль перезаписи URL , вы можете добавить правила перезаписи в файл Web.config
.У меня нет сайтов, размещенных на GoDaddy, поэтому я понятия не имею, используют ли они IIS7 (я думаю, что они используют) или если у них установлен модуль перезаписи URL.Обратитесь в службу поддержки.
Предполагая, что эти предварительные условия выполнены, вы должны использовать следующую конфигурацию:
<configuration>
...
<system.webServer>
<rewrite>
<rules>
<rule name="Canonical Host Name" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^yoursite\.com$" />
</conditions>
<action type="Redirect" url="http://www.yoursite.com/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Перезапись через стороннее приложение
Многие веб-хостинговые компании имеютустановлено стороннее приложение для перезаписи URL, такое как ISAPI_Rewrite.Я не знаю, есть ли у GoDaddy это, вам нужно проверить с поддержкой.Но это может быть другой вариант.
Рассказывая поисковым системам вашу каноническую форму в разметке
Вместо того, чтобы беспокоиться о перенаправлении пользователей на www.
версию, вы можете просто позволить пользователям зайти на ваш сайт.как бы они этого ни хотели, но добавьте разметку на свою страницу, чтобы сообщить поисковым системам каноническую форму ваших URL.
Чтобы указать канонический URL, просто добавьте элемент <link>
в часть <head>
сети.стр.Это работает следующим образом: добавьте следующую разметку в разделы <head>
на тех страницах вашего веб-сайта, чтобы поисковые системы рассматривали один и тот же URL:
<link rel="canonical" href="canonical_url" />
Если вы выполнитеView / Source на Stackoverflow.com вы увидите этот тег <link>
на месте.Это отличный способ убедиться, что дубликаты URL на вашем сайте - например, www.yoursite.com/foo.aspx
и yoursite.com/foo.aspx
рассматриваются как одна и та же запись в индексе поисковой системы.
Счастливого программирования!