如何阻止 apache 中所有 ip 地址的访问但不阻止子文件夹的访问

如何阻止 apache 中所有 ip 地址的访问但不阻止子文件夹的访问

我如何阻止任何人访问我的 IP 地址但不访问 apache 中的子文件夹。

例子:

44.555.666.777 <- 我想禁用访问并将其重定向到另一个域中的另一台服务器。

44.555.666.777/v1 <- 他们可以访问这个!

在我已经启用代理服务器的情况下我该如何做呢?

我已经有了这个,但是这会导致禁止访问,我想要将它们重定向到 404 页面。该页面位于另一个域中。

<Directory /var/www/>
    Order allow,deny
    Allow from 44.555.666.777
    Allow from 127
</Directory>

答案1

一种方法是使用 mod_rewrite。使用 ModRewrite 有几种方法可以实现这一点。一种方法如下:

RewriteEngine On
RewriteCond %{HTTP_HOST}  "44.55.66.77"
RewriteRule ^/(.*)/        - [L,NC]
RewriteRule ^/(.*)   "http://url.for.404.site/path" [R,L]

我还没有尝试过,所以可能需要一些调整,但想法是(1)打开重写,(2)匹配目标 IP 而不是虚拟主机,(3)忽略子目录中的任何内容,(4)重写其他任何内容。

相关内容