Azure 301 перенаправить на определенный путь - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь создать редирект 301 в MS Azure для конкретного сценария js. Правило перенаправления из этого поста Перенаправление веб-сайта Azure 301 - Куда мне его поместить? для перенаправления с домашней страницы одного домена на другой. Тем не менее, он не перенаправляет при использовании полных путей.

Я нашел этот пост 301 перенаправление на полный путь для Apache. Не уверен, как реализовать это для IIS в Azure.

Вот что работает

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Redirect old-domain to new-domain" stopProcessing="true">
                    <match url=".*" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^iistestapp.azurewebsites.net$"/>
                    </conditions>
                    <action type="Redirect" url="http://dev.widget.testdrive.pw/{R:0}" redirectType="Permanent" />
                </rule>  
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Это то, что не работает

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Redirect old-domain to new-domain" stopProcessing="true">
                    <match url=".*" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^http://dev.widget.testdrive.pw/integration/integration.js$"/>
                    </conditions>
                    <action type="Redirect" url="https://code.testdrive.pw/vipdrv/vipdrv.min.js{R:0}" redirectType="Permanent" />
                </rule>  
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Правило должно направить запрос на https://code.testdrive.pw/vipdrv/vipdrv.min.js и распечатать вывод сценария

1 Ответ

0 голосов
/ 11 ноября 2019

Серверная переменная iis {HTTP_HOST} соответствует только имени хоста из URL.

Если вы хотите проверить другую часть, такую ​​как путь к папке и имя файла, вы можете использовать переменную сервера REQUEST_URI. Например, https://contoso.com:8042/over/there?name=ferret вернет /over/there.

, поэтому, основываясь на ваших требованиях, вы можете попробовать следующее правило:

<rule name="Redirect old-domain to new-domain" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^dev.widget.testdrive.pw$" />
                    <add input="{REQUEST_URI}" pattern="/integration/integration.js$" />
                </conditions>
                <action type="Redirect" url="https://code.testdrive.pw{C:0}" redirectType="Permanent" />
            </rule>  

для получения дополнительной информации вы можете обратиться по ссылкам ниже:

Переменные сервера IIS

Создание правил перезаписи для модуля перезаписи URL

...