ASP.NET Core url rewrite only domain

北慕城南 提交于 2019-12-22 18:37:08

问题


I am trying to change my old domain to new one and I have huge data on my website. I need to change only my domain by url rewriting.

When I request:

www.myolddomain.net/article/seo-friendly-url-for-this-article

I need to have a permanent (301) redirect to:

www.mynewdomain.com/article/seo-friendly-url-for-this-article

How ca I do this in asp.net core?


回答1:


Have you considered URL Rewriting Middleware?

It's pretty simple.

  1. Drop a IISUrlRewrite.xml file in the root of your application folder. Mark it as "Content" and "Copy to output directory" set to true, looks like this in your csproj
  <ItemGroup>
    <Content Include="IISUrlRewrite.xml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
  1. Add following content in the file
<rewrite>
  <rules>    
    <rule name="Host replace - Old to new" stopProcessing="true">
      <match url=".*" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="www\.myolddomain\.net" ignoreCase="true" />
      </conditions>
      <action type="Redirect" url="https://www.mynewdomain.com{REQUEST_URI}" redirectType="Permanent" appendQueryString="true" />
    </rule>
   </rules>
</rewrite>
  1. Register the URL rewrite module in the Configure method of your Startup.cs file
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {   

// Irrelevant code emitted

            using (var iisUrlRewriteStreamReader = File.OpenText(Path.Combine(env.ContentRootPath, "IISUrlRewrite.xml")))
            {
                var options = new RewriteOptions().AddIISUrlRewrite(iisUrlRewriteStreamReader);
                app.UseRewriter(options);
            }


// Irrelevant code emitted

        }


来源:https://stackoverflow.com/questions/55837817/asp-net-core-url-rewrite-only-domain

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!