阻止 IIS 中的目录访问但允许特定文件通过

阻止 IIS 中的目录访问但允许特定文件通过

是否可以通过 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" />

相关内容