首页 > 解决方案 > htaccess 阻止访问,除了某些文件夹

问题描述

拥有一个公司已关闭的公司网站,除特定 IP 外,该网站的所有访问均被阻止。来自其他 IP 的所有其他请求都被重定向。

我需要允许访问所有 IP 的几个特定文件夹。

所以原来的重定向部分很简单:

    RewriteCond %{REMOTE_ADDR} !^123.45.67.89$
    RewriteRule !^news$ ./news.html [L]

所以我为目录添加了一些行......

    RewriteCond %{REQUEST_URI} !^folder1$
    RewriteCond %{REQUEST_URI} !^folder2$
    RewriteCond %{REMOTE_ADDR} !^123.45.67.89$
    RewriteRule !^news$ ./news.html [L]

就目前而言,它应该实施“AND”,我的理解是所有这些条件都需要为真才能处理重写规则。我迷路了。它不起作用,我研究了一种变体无济于事。

我在这里做错了什么?我需要人们能够从任何 IP 访问文件夹 1 和文件夹 2。我需要任何人在没有特定 IP 的情况下访问网站的任何其他部分进行重定向。

任何帮助将不胜感激,谢谢。

标签: apache.htaccessredirectmod-rewrite

解决方案


我通过以下方式实现了我的目标:

RewriteCond %{REQUEST_URI}  !(folder1|folder2|folder3) [NC]
RewriteCond %{REMOTE_ADDR} !^123.45.67.89$
RewriteRule !^news$ news.html [L]

推荐阅读