Поисковые машины считают, что сайты http://site.ru и http://www.site.ru являются разными сайтами. Поэтому, если оба этих URL ведут на один и тот же контент, поисковая машина может понижать ваш сайт в результатах выдачи за дублирущийся контент. Чтобы такого не произошло, нужно в файле robots.txt указать строку:
Host: www.site.ru
В которой указывается основное доменное имя (все равно какое выбрать с www или без него, дело вкуса). А со второго имени нужно сделать редирект с кодом 301 на основное доменное имя.
В IIS 7 редирект можно сделать несколькими способами, правда не все подходят для этого случая.
1. Самый простой способ сделать редирект - это выделить в IIS в папке Sites необходимый домен и в основной панели два раза тыкнуть HTTP Redirect. В открывшемся окне установить галку Redirect requests to this destination и указать необходимый URL, ниже в выпадающем списке выбрать код редиректа 301 и в меню справа тыкнуть Apply. Подробнее и с картинками можно почитать тут: http://www.trainsignaltraining.com/windows-server-2008-http-redirection .
Этот способ для рассматриваемого случая не подходит, т.к. он предполагает наличие двух разных сайтов на одном сервере или редирект с одного сервера на другой.
2. Второй способ: установить дополнительный модуль для ASP.NET URL Rewrite Module 2.0, а далее прописать правила редиректа в Web.Config:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect to WWW" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^site.ru$" />
</conditions>
<action type="Redirect" url="http://www.site.ru/{R:0}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Код взят из статьи SEO Canonical URLs And 301 Redirects In Windows IIS 6, IIS 7.
3. Третий способ в Global.asax добавить метод Application_BeginRequest со следующим содержанием:
void Application_BeginRequest(object sender, EventArgs e){
string req_domain = HttpContext.Current.Request.Url.ToString().ToLower();
if (req_domain.Contains("http://site.ru"))
{
req_domain = req_domain.Replace("http://site.ru", "http://www.site.ru");
Response.Clear();
Response.StatusCode = 301;
Response.AddHeader("Location", req_domain);
Response.End();
}
}