![Apache .htaccess 文件限制访问所有文件,除非本地 IP](https://linux22.com/image/500497/Apache%20.htaccess%20%E6%96%87%E4%BB%B6%E9%99%90%E5%88%B6%E8%AE%BF%E9%97%AE%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%EF%BC%8C%E9%99%A4%E9%9D%9E%E6%9C%AC%E5%9C%B0%20IP.png)
我想限制仅供我网络内部人员访问网站。如果外部人员访问该网站,他们将被重定向到另一个页面。
如何根据 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