So I have this configuration block, and I'm particularly looking to block URLs.
<security>
<requestFiltering allowDoubleEscaping="true">
<filteringRules>
<filteringRule name="testrule" scanUrl="false" scanQueryString="false">
<scanHeaders>
<clear />
<add requestHeader="User-agent" />
</scanHeaders>
<denyStrings>
<clear />
<!-- MY QUESTION IS ABOUT THIS BLOCK -->
</denyStrings>
<appliesTo>
<clear />
</appliesTo>
</filteringRule>
</filteringRules>
</requestFiltering>
</security>
When I add this line to <denyStrings> section where I escape the . character:
<add string="yacy\.net" />
User-Agent: yacy.net still works.
With this line:
<add string="yacy.net" />
User-Agent: yacy.net is blocked, but so are yacy.net1 and 2yacy.net1.
My question: How can I block exact match strings only? Instead of partial matches, like it is doing now. I can't find anything on this in the Microsoft docs and apparently I'm not the only one.
Related to this: When looking at blocking through a .htaccess file I normally have to escape spaces, . and underscores, but apparently escaping is not needed under IIS?