我正在尝试在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并打印脚本输出
答案 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>
有关更多信息,您可以参考以下链接: