从page1重定向到page2,有两个问题

时间:2013-12-23 12:35:01

标签: asp.net redirect web-config

我有 my-site.ru/page1.apsx ,这将是 my-site.ru/page2.aspx 的一部分,所以我需要重写(或重定向?)page1.aspx到page2.aspx

我将此添加到我的web.config:

 <system.web>
    <urlMappings enabled="true">
      <add url="~/page1.aspx" mappedUrl="~/page2.aspx"/>      
    </urlMappings>
 </system.web>

我唯一不太热衷于解决的问题是:为什么地址栏中的文字是my-site.ru/page1.aspx但我看到my-site.ru/page2.aspx ??我希望在地址栏中重定向(重写)文本时也会发生变化。

问题2:它如何反映page1.aspx的SEO?如果可能,请提供链接。我是SEO初学者。

PS:我不是母语为英语的人,所以必定会有一些错误

2 个答案:

答案 0 :(得分:1)

如果您不需要page1.aspx上反映的内容,或者如果您要将内容移至page2.aspx,我建议您执行301 redirect,这是一个永久重定向这会影响你的seo将所有搜索引擎优化信息传递给你正在进行重定向的页面,在这种情况下是page2.aspx。

从seo的角度来看,你可以做的其他事情是: - 从xml sitemap删除page1(如果有的话) - 从robots.txt

中排除该页面

要执行重定向,您可以在IIS 7(或更高版本)中执行此操作,您可以在web.config中包含一个元素,如:

<httpRedirect enabled="true" exactDestination="true" httpResponseStatus="Permanent">
     <add wildcard="/page1.aspx" destination="/page2.aspx" />
</httpRedirect>

或者您可以编写重定向代码并检查每个请求中的网址,如:

public class RedirectHttpModule : IHttpModule
{
    public void Init(HttpApplication context)
    {
          context.BeginRequest += new EventHandler(this.context_BeginRequest);
    }

    private void context_BeginRequest(object sender, EventArgs e)
    {
          HttpApplication application = (HttpApplication)sender;
          HttpContext context = application.Context;

          //check here context.Request for using request object 
          if(context.Request.FilePath.Contains("page1.aspx"))
          {
               context.Response.RedirectPermanent("/page2.aspx");
          }
    }

}

如果您使用的是.NET 4.0或更高版本,请查看permament redirection

请注意,如果您执行常规的response.redirect,则会进行302重定向,这会影响您的搜索引擎优化。

答案 1 :(得分:0)

页面加载 写这个 server.transfer(“Page2.aspx”)