Php IIS 10规则重写不使用pho
我有一个IIS10服务器,在这个服务器上我运行一个php应用程序。一切都很好,我已经安装了IIS rewrite,它可以很好地用于一个规则,即规范主机名。但是,我还有一个规则,我想限制对目录中特定图像的访问,除非请求只来自一个特定的php页面,我有以下规则。无论我尝试什么,任何人都可以直接在www.mydomain.com/pics/imagename.jpg上浏览图片 我在重写模块中使用了测试URL功能,我的测试通过了jpg链接和允许的页面,因此我相信这没有什么问题Php IIS 10规则重写不使用pho,php,iis,url-rewriting,Php,Iis,Url Rewriting,我有一个IIS10服务器,在这个服务器上我运行一个php应用程序。一切都很好,我已经安装了IIS rewrite,它可以很好地用于一个规则,即规范主机名。但是,我还有一个规则,我想限制对目录中特定图像的访问,除非请求只来自一个特定的php页面,我有以下规则。无论我尝试什么,任何人都可以直接在www.mydomain.com/pics/imagename.jpg上浏览图片 我在重写模块中使用了测试URL功能,我的测试通过了jpg链接和允许的页面,因此我相信这没有什么问题 <system.we
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="CanonicalHostNameRule1">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^www\.domain\.com$" negate="true" />
</conditions>
<action type="Redirect" url="http://www.domain.com/{R:1}" />
</rule>
<rule name="RestrictHotlinking" patternSyntax="Wildcard" stopProcessing="false">
<match url="*/pictures/*.jpg" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_REFERER}" pattern="http*://www.domain.com/OneAllowedPage.php*" negate="true" />
</conditions>
<action type="Rewrite" url="www.domain.com/img/placeholder.jpg" appendQueryString="false" />
</rule>
</rules>
</rewrite>
� 实际上发现了问题。看起来这是一个额外的正斜杠 下面的两个小改动解决了这个问题。似乎条件的第一个匹配部分的URL表示
www.domain.com/**ThisPartOnly**
<match url="*pictures/*.jpg" />
<action type="Rewrite" url="img/placeholder.jpg" ppendQueryString="false" />