Redirect IIS将子目录重定向到具有相同名称的根级目录
我想在IIS中设置重定向,将我网站上以Redirect IIS将子目录重定向到具有相同名称的根级目录,redirect,iis,url-rewrite-module,Redirect,Iis,Url Rewrite Module,我想在IIS中设置重定向,将我网站上以/blog结尾的所有多级URL重定向到名为/blog的根级子目录。例如,https://www.example.com/sub1/sub2/blog将重定向到https://www.example.com/blog 我编写了以下正则表达式模式: blog/?$ 问题是,虽然这不匹配https://www.example.com/sub1/sub2/blog,它也匹配https://www.example.com/blog,它本身就是我要重定向到的URL。因
/blog
结尾的所有多级URL重定向到名为/blog
的根级子目录。例如,https://www.example.com/sub1/sub2/blog
将重定向到https://www.example.com/blog
我编写了以下正则表达式模式:
blog/?$
问题是,虽然这不匹配https://www.example.com/sub1/sub2/blog
,它也匹配https://www.example.com/blog
,它本身就是我要重定向到的URL。因此,点击/sub1/sub2/blog
会重定向到/blog
,而blog本身会匹配并重定向到/blog
,等等,导致它陷入重定向到自身的循环中
如何编写正则表达式模式,以便以/blog
结尾的多级URL将重定向到根级别/blog
页面,而根级别页面本身不匹配?请尝试此方法
<rule name="rewrite rule" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{URL}" pattern="^/(.+)/blog/?$" />
</conditions>
<action type="Redirect" url="https://www.example.com/blog" redirectType="Temporary" />
</rule>
或者,你也可以选择whitlist
<rule name="rewrite rule" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{URL}" pattern="blog/?$" />
<add input="{URL}" pattern="^/blog/?$" negate="true" />
</conditions>
<action type="Redirect" url="https://www.example.com/blog" redirectType="Temporary" />
</rule>
添加一个条件来检查“^blog”是否匹配,在这种情况下不要重定向。