2013-08-01 3 views
1

У меня есть веб-сайт, который сталкивается с канонической проблемой. Мне нужен мой веб-сайт для перехода от не-www к www, когда когда-либо я набираю URL-адрес, например, abc.com на www .abc.com.i получил код, но он не работает.Canonical error (As Non www to www) через веб-конфигурацию

<rewrite> 
<rules> 
    <rule name="RedirectToWWW" enabled="true" stopProcessing="true"> 
    <match url=".*" /> 
    <conditions> 
    <add input="{HTTP_HOST}" pattern="^(?!www)(\S+)\.com$" /> 
    </conditions> 
    <action type="Redirect" url="http://www.{C:0}/{R:0}" /> 
    </rule> 
    </rules> 
</rewrite> 

как ошибка: переписывают оленья кожа принадлежат system.webServer

ответ

1

Вы могли бы рассмотреть другой подход:

protected void Application_BeginRequest (object sender, EventArgs e) 
{ 
if (!Request.Url.Host.StartsWith ("www") && !Request.Url.IsLoopback) 
{ 
    UriBuilder builder = new UriBuilder (Request.Url); 
    builder.Host = "www." + Request.Url.Host; 
    Response.Redirect (builder.ToString(), true); 
} 
} 

Это будет, однако, сделать 302 переадресацию так мало твик рекомендуется:

protected void Application_BeginRequest (object sender, EventArgs e) 
{ 
if (!Request.Url.Host.StartsWith ("www") && !Request.Url.IsLoopback) 
{ 
    UriBuilder builder = new UriBuilder (Request.Url); 
    builder.Host = "www." + Request.Url.Host; 
    Response.StatusCode = 301; 
    Response.AddHeader ("Location", builder.ToString()); 
    Response.End(); 
} 
} 

Этот номер будет возвращен 301 Перемещено в manently.

Если вы хотите добавить его в web.config Проверить эту ссылку http://weblogs.asp.net/owscott/archive/2009/11/27/iis-url-rewrite-rewriting-non-www-to-www.aspx

+0

, где я должен разместить этот метод, пожалуйста, скажите мне полное описание о нем – Ashish

+0

Существует global.asax файл. В этом вы можете видеть различные типы методов. –

+0

Большое спасибо за код ..... это сработало – Ashish

Смежные вопросы