ASP.NET Core URL переписать только домен - PullRequest
2 голосов
/ 24 апреля 2019

Я пытаюсь изменить свой старый домен на новый, и у меня на сайте огромные данные. Мне нужно изменить только мой домен путем переписывания URL.

Когда я запрашиваю:

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

Мне нужно иметь постоянный (301) редирект на:

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

Как мне это сделать в ядре asp.net?

1 Ответ

1 голос
/ 25 апреля 2019

Рассматривали ли вы Промежуточное программное обеспечение для перезаписи URL ?

Это довольно просто.

  1. Перетащите файл IISUrlRewrite.xml в корень папки вашего приложения.Пометьте его как «Content» и «Copy to output directory», установленное в 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>
Зарегистрируйте модуль перезаписи URL в методе Configure вашего Startup.cs файла
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

        }
...