seo重复内容问题

时间:2014-05-03 08:39:58

标签: asp.net web-config seo

我有一个asp.net网站,当我在分析器网站上检查时,它评论说我的网站有重复内容的问题... www.mysite.com和mysite.com显示相同的内容...  一些网站建议添加类似下面的链接可以解决问题:

<link rel="canonical" href="http://www.mysite.com" />

但显然它不会......有人告诉我,我应该在网站的web.config中修复它但是我找不到解决方案......有没有关于这个问题的建议?

2 个答案:

答案 0 :(得分:1)

您可以添加全局过滤器以根据不同的网址删除重复项:

public class RemoveDuplicateContentAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var routes = RouteTable.Routes;
        var requestContext = filterContext.RequestContext;
        var routeData =requestContext.RouteData;
        var dataTokens = routeData.DataTokens;
        if (dataTokens["area"] == null)
            dataTokens.Add("area", "");
        var vpd = routes.GetVirtualPathForArea(requestContext, routeData.Values);
        if (vpd != null)
        {
            var virtualPath = vpd.VirtualPath.ToLower();
            var request = requestContext.HttpContext.Request;
            if (!string.Equals(virtualPath, request.Path))
            {
                filterContext.Result = new RedirectResult(virtualPath + request.Url.Query, true);
            }
        }
        base.OnActionExecuting(filterContext);
    }
}

然后在global.asax文件中添加此过滤器:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new RemoveDuplicateContentAttribute());
}

答案 1 :(得分:1)

您应该决定要使用哪个域,并为其设置永久重定向(301)。

使用IIS Url Rewrite模块的一种可能的解决方案(但您必须得到提供商的支持,否则您必须自己添加)。我们假设你想从mysite.com重定向到www.mysite.com:

   <rewrite>
     <rules>
       <rule name="You name here" stopProcessing="true">
        <match url="(.*)"/>
        <conditions>             
         <add input="{HTTP_HOST}" pattern="^mysite.com$"/>
        </conditions>
        <action type="Redirect" redirectType="Permanent" url="http://www.mysite.com/{R:1}"/>
       </rule>
     </rules>
   </rewrite>

如果您无法使用它,那么编写您自己的模块并不难,它会将所有请求重定向到某个域