Apache .htaccess 文件限制访问所有文件,除非本地 IP

Apache .htaccess 文件限制访问所有文件,除非本地 IP

我想限制仅供我网络内部人员访问网站。如果外部人员访问该网站,他们将被重定向到另一个页面。

如何根据 IP 地址配置这两个不同的操作?

答案1

由于您不仅想阻止外部网络加载页面,还想将其发送到其他页面,因此您需要使用 mod_rewrite。假设您的本地网络是 192.168.1.0/24:

RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^192\.168\.1
RewriteCond !^/foreigners/page
RewriteRule .* /foreigners/page [R,L]

您实际上不需要限制该页面,因为重写规则将确保外国人永远看不到该页面。

请注意,这尚未经过完全测试,但应该可以让您走上您想要的道路。

答案2

这就是最终奏效的方法!感谢大家的帮助,让我接近成功。

RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^10\.5
RewriteCond %{REQUEST_URI} !^visitor\.php
RewriteRule .* visitor.php

答案3

限制如下:

<Directory /var/www/your-root-folder/>
        Options Indexes FollowSymLinks Multiviews
        AllowOverride All

        Order Deny,Allow
        Deny from all
        # Allow only from LAN subnet
        Allow from 192.168.1.0/255.255.255.0
</Directory>

然后,如果您希望为本地子网之外的用户自动重定向,则需要修改“403 Forbidden”的默认处理。我的示例重定向到“index.php”。

ErrorDocument 403 /index.php

答案4

尝试这个

命令拒绝,允许

全部否认

允许来自 192.168

相关内容