如何在IIS 7.5

时间:2017-05-04 16:23:55

标签: iis-7.5 http-redirect

我是重新定向的IIS世界的新手,我们的任务是为我们网站的一部分设置重定向。

  

我需要重定向的网址是brandview.auditedmedia.com,我需要它   转到https://auditedmedia.com/data/media-intelligence-center/brand-view

     

诀窍是我们可以拥有一个带有QueryString的URL,例如   brandview.auditedmedia.com/memberNumber=423524并且该URL不应该   被重定向。

     

此外,brandview.auditedmedia.com的计划无关紧要。都   HTTP和HTTPS应该重定向。

所以我不确定我应该在IIS中作为应用程序中的RouteMap吗? 如果我应该在IIS中这样做,有人可以指向我一篇文章或举例说明我需要做什么吗?

由于 鲍勃

4 个答案:

答案 0 :(得分:1)

您需要在服务器级别添加URL重写规则。使用条件来防止具有非空查询字符串字符串的请求的重定向。 对于您的情况,有必要添加以下规则:

<rule name="brandview redirect" stopProcessing="true">
  <match url=".*" ignoreCase="true" negate="false" />
  <conditions logicalGrouping="MatchAll">
    <add input="{HTTP_HOST}" pattern="^brandview\.auditedmedia\.com$" negate="false" />
    <add input="{QUERY_STRING}" pattern=".+" negate="true" />
  </conditions>
  <action type="Redirect" url="https://auditedmedia.com/data/media-intelligence-center/brand-view" appendQueryString="false" redirectType="Permanent" />
</rule>

您的问题有detailed instruction。请注意,必须在%windir%\ system32 \ inetsrv \ config \ ApplicationHost.config 文件的 system.webServer / rewrite / globalRules 部分中创建规则。

答案 1 :(得分:0)

我修复了模式(见下文),虽然所有模式匹配在URL重写模块中正常工作(使用测试按钮并放入不同的URL),但当我尝试访问网站时仍然无法正常工作。服务器只是继续提供页面而不是重定向。

<rewrite>
     <globalRules>
        <rule name="brandview redirect" stopProcessing="true">
          <match url=".*" ignoreCase="true" negate="false" />
          <conditions logicalGrouping="MatchAll">
            <add input="{HTTP_HOST}" pattern="^(https?:\/\/)?brandviewdev\.auditedmedia\.com$" negate="false" />
            <add input="{QUERY_STRING}" pattern=".+" negate="true" />
          </conditions>
          <action type="Redirect" url="https://auditedmedia.com/data/media-intelligence-center/brand-view" redirectType="Permanent" appendQueryString="false" />
        </rule>
      </globalRules>
    </rewrite>

答案 2 :(得分:0)

您还可以使用GUI添加URL重写规则。在开始之前,请确保对 brandview.auditedmedia.com https://auditedmedia.com/data/media-intelligence-center/brand-view 的两个直接HTTP请求都返回状态200(确定)。

  1. 通过提示inetmgr命令打开IIS管理器。
  2. 在“连接”窗格中选择 brandview 网站,然后打开网址重写功能。
  3. 使用添加规则... 操作
  4. 创建新的空规则
  5. 编辑入站规则对话框中,输入以下内容:

  6. 点击操作窗格中的应用保存规则。

  7. 确保将 brandview.auditedmedia.com 的请求重定向到https://auditedmedia.com/data/media-intelligence-center/brand-view
  8. 重复步骤1,2,然后选择 Redirect to auditedmedia.com 规则。
  9. 执行操作添加条件...... ,具体如下:
    • 条件输入: {QUERY_STRING} ;
    • 检查输入字符串:是否与模式匹配;
    • 模式:。+ ;
    • 忽略大小写: true
  10. 确定按钮。
  11. 因此,对带有空查询字符串的brandview.auditedmedia.com的所有请求都将重定向到https://auditedmedia.com/data/media-intelligence-center/brand-view页面。测试后,您可以将重定向类型更改为301。

答案 3 :(得分:0)

尝试不同的组合后,我终于让重定向工作正常,说实话,我不确定如何。这是我的配置

<rewrite>
            <rules>
                <rule name="Brandview Redirect" enabled="true" stopProcessing="true">
                    <match url="^$" ignoreCase="true" negate="false" />

                    <action type="Redirect" url="https://auditedmedia.com/data/media-intelligence-center/brand-view" appendQueryString="false" redirectType="Temporary" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="brandviewdev\.auditedmedia\.com" />
                        <add input="{QUERY_STRING}" pattern=".+" negate="true" />
                    </conditions>
                </rule>
            </rules>
        </rewrite>