我有一个拥有网站的客户(awesomeco.com)。在网站上他们有一个名为“good-stuff”的产品,网址是awesomeco.com/good-stuff。他们想要移动该文件夹并将其放在awesomecogoodstuff.com上。不幸的是,由于他们正在使用的.net cms,我们无法将该文件夹移到其自己的网站中。我有一个处理重写的重写规则,它运行得很好。
以下是代码:
<rule name="awesomecogoodstuff.com rewrite" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="awesomecogoodstuff.com />
<add input="{REQUEST_URI}" pattern="\.png|\.css|\.jpg|\.svg|\.ico|\.icon|\.woff|\.js|\.ttf" negate="true" />
</conditions>
<action type="Rewrite" url="/good-stuff/{R:0}" />
</rule>
不幸的是,客户想要一个重定向规则,该规则需要awesomeco.com/good-stuff并将其发送到awesomecogoodstuff.com。
我尝试了一些事情,要么它们不起作用,要么进入重定向循环并崩溃。
示例,此规则会炸毁网站:
<rule name="redirect to new domain" stopProcessing="true">
<match url="awesomeco.com/good-stuff" />
<action type="Redirect" url="http://awesomecogoodstuff.com" redirectType="Found" />
</rule>
有任何想法或建议吗?
答案 0 :(得分:0)
我可以用小“黑客”来实现这一目标。重写时,只需添加querystring参数:
<rule name="awesomecogoodstuff.com rewrite" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="awesomecogoodstuff.com />
<add input="{REQUEST_URI}" pattern="\.png|\.css|\.jpg|\.svg|\.ico|\.icon|\.woff|\.js|\.ttf" negate="true" />
</conditions>
<action type="Rewrite" url="/good-stuff/{R:0}?rewrite=true" />
</rule>
然后在您的重定向规则中,只检查此查询字符串是否不存在:
<rule name="redirect to new domain" stopProcessing="true">
<match url="^good-stuff" />
<conditions>
<add input="{QUERY_STRING}" pattern="redirect=true" negate="true" />
<add input="{HTTP_HOST}" pattern="^awesomeco.com$" />
</conditions>
<action type="Redirect" url="http://awesomecogoodstuff.com" redirectType="Found" />
</rule>
答案 1 :(得分:-1)
这是一个有点疯狂的解决方案,但它可能会起作用并满足您的需求。
您可以通过JavaScript查看页面onload:
<form class="form-horizontal address_form" method="post">
它可以解决您的问题,并且您不会遇到与重写/重定向规则的冲突。