Я хочу ограничить доступ к веб-сайту для людей внутри моей сети. Если кто-то заходит на сайт извне, он будет перенаправлен на другую страницу.
Как мне настроить эти два разных действия на основе IP-адреса?
Поскольку вы не хотите просто предотвращать загрузку страниц из внешних сетей, а хотите отправить их на другую страницу, вам нужно будет использовать mod_rewrite. Предполагая, что ваша локальная сеть 192.168.1.0/24:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^192\.168\.1
RewriteCond !^/foreigners/page
RewriteRule .* /foreigners/page [R,L]
На самом деле вам не нужно ограничивать страницу, потому что правила перезаписи гарантируют, что иностранцы никогда не увидят страницу.
Обратите внимание, что это не полностью протестировано, но должно помочь вам выбрать нужный путь.
Вот что в итоге сработало! Спасибо за то, что помогли мне приблизиться.
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^10\.5
RewriteCond %{REQUEST_URI} !^visitor\.php
RewriteRule .* visitor.php
Ограничение осуществляется следующим образом:
<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
попробуй это
заказ отклонить, разрешить
отрицать от всех
разрешить с 192.168