【问题标题】:IP Blocking URLs on ApacheApache 上的 IP 阻止 URL
【发布时间】:2009-10-12 13:39:38
【问题描述】:

我需要阻止通过 IP 地址访问我的整个站点,但应该对所有人开放的 url /api 除外。

我目前正在使用...

<LocationMatch /admin>
    Order Deny,Allow
    Deny from all
    Allow from [MY IP]
</LocationMatch>

这会阻止以 /admin 开头的访问 url。但我想阻止除以 /api 开头的所有 url。

克里斯

【问题讨论】:

    标签: php security apache cakephp


    【解决方案1】:
    RewriteEngine On # (only needs to happen once in .htaccess files.
    
    RewriteBase /
    RewriteCond %{REMOTE_ADDR} !^10\.103\.18\.104     # <--YOUR IP HERE
    RewriteCond %{REQUEST_URI} !^/api    # page or directory to ignore                   
    RewriteRule ^(.*)$ http://example.com/no_access.html [R=401] # where to send blocked requests
    

    【讨论】:

    • 无法让它工作。我收到错误 401 Authentication required.
    • 重写需要使用额外的模块。还是用核心更好。
    • @Chris - 如果您的 IP 不匹配,我提供的代码会向浏览器返回 401。 @Mauris - 这是真的。但并非所有用户都可以访问核心配置文件。和重写工作在目录级别妥协?使用位置锁定整个站点(将“/admin”替换为“/”)使用附加位置块解锁/api(反向拒绝,允许全部允许)
    【解决方案2】:

    你可以先屏蔽整个网站,然后简单地允许 /api。

    <LocationMatch />
        Order Deny,Allow
        Deny from all
        Allow from [MY IP]
    </LocationMatch>
    
    <LocationMatch /api>
        Order Deny,Allow
        Allow from all
    </LocationMatch>
    

    抱歉,由于我的 PC 上配置 XAMPP 的方式,我无法对其进行测试。祈祷它有效。

    【讨论】:

    • 你有没有尝试切换规则的顺序?
    猜你喜欢
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 2021-07-24
    • 2012-08-24
    • 2011-03-16
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多