Как динамически переписать / перенаправить URL - PullRequest
0 голосов
/ 05 июля 2019

У меня тут немного сложная проблема. Я искал другие темы, но не нашел решения. У меня есть URL-адрес веб-сайта, скажем foo.com, и URL-адрес bar.com. Они используют один и тот же код. Теперь все отлично работает, кроме перенаправления части URL. Я также хочу, чтобы вы, ребята, знали, что у меня не было опыта с перезаписью URL, так что будьте проще, пожалуйста.

Foo.com существовал первым и был перенаправлен с foo.com на www.foo.com через CanonicalHostNameRule, перенаправляя шаблон (.*) на http://www.foo.com/{R1}, который отлично работает для этого домена, но не для домена bar.com .

Ниже приведены мои полные правила переписывания для сайта: enter image description here

И вот мои правила переписывания web.config:

<rules>
                <clear />
                <rule name="LetsEncrypt Rule" stopProcessing="true">
                    <match url="^\.well-known.*$" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                    <action type="None" />
                </rule>
                <rule name="CanonicalHostNameRule1" enabled="false" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{HTTP_HOST}" pattern="^www.\foo.be$" negate="true" />
                    </conditions>
                    <action type="Redirect" url="http://www.{R:2}/{R:1}" />
                </rule>
                <rule name="Rewrite legacy url's" patternSyntax="ECMAScript">
                    <match url="^.((?!nl-BE).)+$" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{StaticRewrites:{REQUEST_URI}}" pattern="(.+)" />
                    </conditions>
                    <action type="Redirect" url="{C:1}" redirectType="Permanent" />
                </rule>
                <rule name="One homepage - redirect /home/">
                    <match url="^([a-z][a-z]-[A-Z][A-Z])/home/?" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                    <action type="Redirect" url="{R:1}/" redirectType="Permanent" />
                </rule>
                <rule name="One homepage - redirect root to language">
                    <match url="^\d*$" negate="false" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                    <action type="Redirect" url="/nl-BE/" redirectType="Permanent" />
                </rule>
                <rule name="Add trailing slash">
                    <match url="^([^.]*[^/])$" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                    <action type="Redirect" url="{R:1}/" redirectType="Permanent" />
                </rule>
                <rule name="HTTP to HTTPS redirect" enabled="true" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
                </rule>
            </rules>

Не могли бы вы, ребята, подсказать мне, как это исправить? Это все сложно для моего маленького мозга. Заранее спасибо, ребята!

1 Ответ

1 голос
/ 10 июля 2019

вы можете попробовать ниже правило перезаписи URL:

 <rule name="Canonical3" enabled="true" stopProcessing="true">
         <match url=".*" />
         <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{HTTP_HOST}" pattern="^([a-z0-9]+[.]com)$" />
         </conditions>
         <action type="Redirect" url="http://www.{C:1}/{R:0}" redirectType="Permanent" />
       </rule>

это будет работать как с именем домена.

...