【问题标题】:IIS Redirect to Subfolder only if specifiedIIS 仅在指定时重定向到子文件夹
【发布时间】:2020-12-15 15:03:48
【问题描述】:

感谢您的宝贵时间。请注意,所有文件夹详细信息都将转到各自单独的域,其他任何内容都将转到一个特定域。

我正在尝试使用一些重定向规则来重定向我的网站,我可以帮忙,但我认为缺少某些东西。

基本上,我需要

website.com/newlink 转发到extwebsite.com

website.com/otherlink 转发到othextwebsite.com

(以及我将指定的其他一些内容)

如果未指定,我需要所有其他与文件夹特定请求不匹配的 *.website.com/* 转发到 https://www.Ournewwebsite.com

我正在尝试编写这些 IIS 规则,并且已经将我的头撞到墙上 4 天了。我做了很多研究,但无法得出正确的答案。请指教。

【问题讨论】:

  • 请了解如何格式化问题正文,否则其他人将无法理解您的要求。也学习FRT,方便自己调试自己写的规则,docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/…
  • 我认为我在这个问题上非常简洁。尽管规则相同,但它在 Azure 中作为应用服务提供。所以实际上并没有 IIS 可供使用。
  • 在 Azure 应用服务上应用此类规则之前,请在您的计算机上构建一个本地 IIS 以对其进行测试,您可以在其中使用各种故障排除工具(例如 Fiddler/FRT)。急于使用 Azure 的人只会给自己添麻烦。

标签: web iis url-rewriting web-config


【解决方案1】:

您可以创建3条规则来匹配不同的情况,您可以参考以下规则:

<rule name="r1" stopProcessing="true">
    <match url="^newlink$" />
       <action type="Redirect" url="www.extwebsite.com" />             
</rule>
<rule name="r2" stopProcessing="true">
    <match url="^otherlink$" />
       <action type="Redirect" url="www.othextwebsite.com" />              
</rule>
<rule name="r3" stopProcessing="true">
    <match url="^(?!newlink|otherlink).*$" />
       <action type="Redirect" url="https://www.Ournewwebsite.com" />
         <conditions>
             <add input="{HTTP_HOST}" pattern="^(.*).website$" />
         </conditions>
 </rule>

【讨论】:

  • 我将对此进行测试,但这是否还有其他用途? 我想从之前的规则中添加我所有的 url 匹配,所以它不知道匹配他们。
  • 模式^(?!newlink|otherlink).*$表示不匹配newlink和otherlink,除了这两个数据,它可以匹配任何数据。我把我的测试结果放在答案中。
猜你喜欢
  • 2011-10-01
  • 2011-12-20
  • 2018-08-28
  • 2013-10-16
  • 2020-04-07
  • 2017-02-13
  • 1970-01-01
  • 2016-05-03
  • 2021-10-21
相关资源
最近更新 更多