Назад | Перейти на главную страницу

Файл Apache .htaccess для ограничения доступа ко всем файлам, кроме локального IP

Я хочу ограничить доступ к веб-сайту для людей внутри моей сети. Если кто-то заходит на сайт извне, он будет перенаправлен на другую страницу.

Как мне настроить эти два разных действия на основе 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