ASP.NET 核心网址仅重写域



我正在尝试将旧域更改为新域,并且我的网站上有大量数据。我只需要通过 url 重写来更改我的域。

当我要求:

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

我需要永久 (301( 重定向到:

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

我如何在 asp.net 核心中做到这一点?

您是否考虑过 URL 重写中间件?

这很简单。

  1. 将 IISUrlRewrite.xml 文件放在应用程序文件夹的根目录中。将其标记为"内容"和"复制到输出目录"设置为 true,在您的 csproj 中看起来像这样
  <ItemGroup>
    <Content Include="IISUrlRewrite.xml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
  1. 在文件中添加以下内容
<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. Startup.cs文件的Configure方法中注册 URL 重写模块
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{   
    // Irrelevant code omitted
    using (var iisUrlRewriteStreamReader = File.OpenText(Path.Combine(env.ContentRootPath, "IISUrlRewrite.xml")))
    {
        var options = new RewriteOptions().AddIISUrlRewrite(iisUrlRewriteStreamReader);
        app.UseRewriter(options);
    }
    // Irrelevant code omitted
}

最新更新