iis “规范域名规则不适用于不同的子域”这一说法背后的理由是什么?

vohkndzv  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(112)

链接:https://www.tekcent.com/articles/2013/a-better-canonical-domain-name-rule-for-iis/
作者声称The default Canonical Domain Name rule in IIS doesn't work very well. The generated rule doesn't work across different sub domains
为了测试这个我创建了2个网站-
Website 1有2个绑定:xx1.mydomain.com ; xx2.mydomain.com
Website 2有2个绑定:一个月三个月
然后,我添加了规范域名规则,使他们的请求得到重定向到第二个网址。

在浏览器中输入xx1.mydomain.com将转到xx2.mydomain.com
在浏览器中输入yy1.mydomain.com将转到yy2.mydomain.com
这和预期的一样。作者提到了什么--生成的规则不能跨不同的子域工作?

rkue9o1l

rkue9o1l1#

我看了一下你提供的链接,我可以和你分享我的理解,希望能对你的困惑有所帮助。
作者的网站有多个绑定,他可以通过localhoststaging.tekcent.comtekcent.com等作为不同阶段(localhost、dev、staging和production)的URL中的主机名来访问网站;而规范域名仅在生产中需要,因此作者只希望将来自tekcent.com的请求重定向到生产站点。

<conditions>
   <add input="{HTTP_HOST}" negate="true" pattern="^www\.tekcent\.com$" />
</conditions>

任何不是www.tekcent.com的请求都会匹配成功,包括来自localhoststaging.*的请求,然后重定向,但这不是作者想要的效果,所以作者对规则做了一些修改。
你的测试和他的观点并不矛盾,默认的规范域名规则是有效的。如果你的网站1在localhost上运行,它也可以通过localhost访问。根据默认规则,当你访问localhost时,它也会被带到xx2.mydomain.com。如果你不想在从localhost访问时遵循这个规则,则需要更改规则以检查xx1.mydomain.com上的精确匹配。

相关问题