Azure 301重定向到特定路径

时间:2019-11-08 13:13:19

标签: redirect iis web-config azure-web-sites

我正在尝试在MS Azure中创建到特定js脚本的301重定向。来自该帖子Azure Website 301 Redirect - Where Do I Put It?的重定向规则,用于从一个域的主页重定向到另一个域。但是,使用完整路径时它不会重定向。

我发现了这篇关于301 redirect to full path的Apache帖子。不确定如何在Azure上的IIS中实现它。

这是可行的

<?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 :(得分:0)

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 Server Variables

Creating Rewrite Rules for the URL Rewrite Module