URL переписать в FQDN с помощью .netcore 2.2 - PullRequest
0 голосов
/ 13 января 2020

В рамках нашей попытки начать автоматизацию наших сборок / развертываний я пытаюсь выяснить, как создать перезапись URL-адреса в нашем веб-приложении .netcore 2.2, чтобы переписать URL-адрес с site/ на https://sitename.domain.com, поскольку в настоящее время это это достигается за счет наличия правила перезаписи в нашем файле web.config на нашем производственном сервере, которое мы не копируем при копировании файлов после публикации проекта. У web.config на рабочем сервере есть это правило для перезаписи.

<rule name="Redirect shortname to FQDN" stopProcessing="true">
    <match url="^(.*)$" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^.*\.domain\.com$" negate="true"/>
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}.domain.com/{R:1}" />
</rule>

Я пытаюсь достичь той же функциональности в файле Startup.cs, используя следующую строку внутри метода Configure в Startup.cs

app.UseRewriter(new RewriteOptions().AddRewrite("^(?!https://site\\.domain\\.com\\/?(.*))","site.domain.com/$1",false));

Однако, похоже, это не работает - я предполагаю, что это неправильный способ обработки этого, так как я не могу найти никакой информации о перезаписи URL для FQDN с IApplicationBuilder с помощью Google.

Каким был бы правильный способ добиться перезаписи этого URL при перемещении его из web.config или при включении его в файл web.config в publi sh?

1 Ответ

0 голосов
/ 13 января 2020

Я нашел ответ после публикации этого вопроса и решил, что отвечу на него всем, кто столкнется с этим в будущем.

Вы можете извлечь переписанный файл из необходимого web.config в новый файл конфигурации, например urlRewrite.config, чтобы он выглядел следующим образом

<?xml version="1.0" encoding="utf-8"?>
<rewrite>
    <rules>
        <rule name="Redirect shortname to FQDN" stopProcessing="true">
            <match url="^(.*)$" />
            <conditions>
                <add input="{HTTP_HOST}" pattern="^.*\.domain\.com\/$" negate="true" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}.domain.com/{R:1}" />
        </rule>
    </rules>
</rewrite>

Затем внутри Startup.cs в методе Configure вы можете использовать следующую строку

app.UseRewriter(new RewriteOptions().AddIISUrlRewrite(env.ContentRootFileProvider, "urlRewrite.config"));

Более подробная информация об этом может можно найти здесь .

...