Php Apache上的IP阻止URL

Php Apache上的IP阻止URL,php,security,apache,cakephp,Php,Security,Apache,Cakephp,我需要阻止通过IP地址访问我的整个网站,url/api除外,它应该对所有人开放 我目前正在使用 <LocationMatch /admin> Order Deny,Allow Deny from all Allow from [MY IP] </LocationMatch> 命令拒绝,允许 全盘否定 允许从[我的IP] 这将阻止访问以/admin开头的URL。但我想阻止所有URL,除了启动/api的URL Chris你可以先屏蔽整个站点,然后

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

我目前正在使用

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

命令拒绝,允许
全盘否定
允许从[我的IP]
这将阻止访问以/admin开头的URL。但我想阻止所有URL,除了启动/api的URL


Chris

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

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

<LocationMatch /api>
    Order Deny,Allow
    Allow from all
</LocationMatch>

命令拒绝,允许
全盘否定
允许从[我的IP]
命令拒绝,允许
通融
很抱歉,由于在我的电脑上配置XAMPP的方式,我无法测试它。请祈祷它能正常工作。

RewriteEngine on#(只需要在.htaccess文件中执行一次)。
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
重写基/
重写条件%{REMOTE_ADDR}“^10\.103\.18\.104”无法运行此功能。我收到一个错误,需要401身份验证。重写需要使用其他模块。最好使用core。@Chris-如果您的IP不匹配,我提供的代码会将401返回浏览器。@Mauris-这是真的。但并非所有用户都有权访问core配置文件。然后重写e在目录级工作?使用位置锁定整个站点(将“/admin”替换为“/”)使用其他位置块解锁/api(反向拒绝,允许全部)是否尝试切换规则的顺序?