我正在尝试将旧域更改为新域,并且我的网站上有大量数据。我只需要通过 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 重写中间件?
这很简单。
- 将 IISUrlRewrite.xml 文件放在应用程序文件夹的根目录中。将其标记为"内容"和"复制到输出目录"设置为 true,在您的 csproj 中看起来像这样
<ItemGroup>
<Content Include="IISUrlRewrite.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
- 在文件中添加以下内容
<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>
- 在
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
}