是否可以通过 IIS 中的 web.config 阻止对目录的访问(不包括一小组 IP),但允许所有人通过一个特定文件。
我询问的原因是,我想阻止 WordPress 中的 wp-admin 目录,但 admin-ajax.php 确实需要外部访问。
谢谢。
答案1
供将来参考,这是解决方案:
<location path="wp-admin">
<system.webServer>
<security>
<ipSecurity allowUnlisted="false">
<clear/>
<add ipAddress="ipaddr" allowed="true" />
</ipSecurity>
</security>
</system.webServer>
</location>
<location path="wp-admin/admin-ajax.php">
<system.webServer>
<security>
<ipSecurity allowUnlisted="true">
</ipSecurity>
</security>
</system.webServer>
</location>
答案2
解决方案要求在 applicationhost.config 中将 ipSecurity overrideModeDefault 设置为 Allow,否则您将收到 500.19 - 内部服务器错误,错误代码为 0x80070021
<section name="ipSecurity" overrideModeDefault="Allow" />