将IIS虚拟目录限制为特定的HTTP主机头?

时间:2013-10-24 16:25:01

标签: wordpress iis mod-rewrite virtual-directory blogengine.net

我在IIS中设置了一个带有2个HTTP标头的网站(www.mysite.com和[blank])。

有一个名为'blog'的虚拟目录指向WordPress网站 - 可通过www.mysite.com/blog/

访问

任何其他请求(例如www.site1.com,www.site2.com,something.mysite.com)由同一站点(使用[blank]标题)处理并重写规则以显示必要的信息。< / p>

问题是我不希望/ blog /可用于除www.mysite.com以外的任何其他内容,因为目前我可以通过以下任何方式访问它:

www.site1.com/blog/ something.mysite.com/blog /

这是因为我们也在使用BlogEngine(用户博客),如果他们将自己的博客目录设置为“博客”,那么它就会与WordPress进行冲突。

理想情况下,我希望能够将主机头添加到虚拟目录,但无法找到方法,所以寻找任何其他解决方案(除了移动WordPress博客)。

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以使用UrlRewrite规则阻止在非/blog网站上浏览www.mysite.com

<rule name="RequestBlockingRule1" patternSyntax="Wildcard" stopProcessing="true">
  <match url="*" />
  <conditions logicalGrouping="MatchAll">
    <add input="{URL}" pattern="/blog*" />
    <add input="{HTTP_HOST}" pattern="www.mysite.com" negate="true" />
  </conditions>
  <action 
      type="CustomResponse" statusCode="403" 
      statusReason="Forbidden: Access is denied." 
      statusDescription="You do not have permission to view this directory or page." />
</rule>