【问题标题】:Redirect from page1 to page2, two questions从page1重定向到page2,两个问题
【发布时间】:2023-03-30 00:37:01
【问题描述】:

我有一个 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:我的母语不是英语,所以一定有一些错误

【问题讨论】:

    标签: asp.net redirect web-config


    【解决方案1】:

    如果您不需要 page1.aspx 上反映的内容,或者如果您要将内容移动到 page2.aspx,我建议您做一个301 redirect,这是一个 永久重定向这将影响您的 seo 将所有 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>
    

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

    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 重定向,这将影响您的 seo。

    【讨论】:

    • web.config 代码不起作用。我删除了 page1.aspx,添加了您的 web.config 部分,输入了 mysite.ru/page1.aspx 并收到 404 错误...
    • 为什么要删除 page1.aspx?我虽然情况是在不影响 seo 的情况下执行从一个 url 到另一个 url 的重定向!
    • page1.aspx 的内容将是 page2.aspx 的一部分,所以我不需要 page1.aspx。我对吗 ?我无法从不存在的页面重定向?
    • 如果该页面不存在,您最好的办法是通过代码(httpmodule)进行重定向,但您需要将其更改为 request.url,而不是使用文件路径
    • 所以我不能通过 web.config 做到这一点?
    【解决方案2】:

    在页面加载时 写这个 server.transfer("Page2.aspx")

    【讨论】:

    • 嗯,我想删除 page1.apsx。是否可以在 web.config 中删除 page1.aspx 并制作 server.transfer ?
    • 我刚刚尝试了你的答案,仍然得到相同的结果:它重定向到 pages2.apsx 但地址栏中的文本仍然是 page1 ..
    • ohkk,, 然后在加载时尝试 response.redirect("www./page2.aspx")
    • response.redirect 将更改地址栏中的位置
    猜你喜欢
    • 2011-09-09
    • 2020-10-10
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    相关资源
    最近更新 更多