- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Люди добрые, помогите.
Необходимо, что доступ к папке на сервере был только для определенных User-Agent
Делаю так:
Но User-Agent: good-agent тоже вылетает на 403 ошибку.
В чем может быть проблема?
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !good-agent1 [NC]
RewriteCond %{HTTP_USER_AGENT} !good-agent2 [NC]
...
RewriteCond %{HTTP_USER_AGENT} !good-agentN [NC]
RewriteRule .* - [L]
Директивы mod_authz_host Allow, Deny срабатывают раньше чем директивы mod_setenvif, так что в одном файле это не работает.
Решить можно переместив директивы mod_setenvif в .htaccess на уровень выше, а остальное оставить.
Перенести в корневой .htaccess
Сделал так:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !good-agent [NC]
RewriteRule ^(.*)$ - [L]
Но доступ с других User-Agent так же возможен.
То есть функцию не выполняет.
---------- Добавлено 12.02.2015 в 13:27 ----------
Директивы mod_authz_host Allow, Deny срабатывают раньше чем директивы mod_setenvif, так что в одном файле это не работает.
Решить можно переместив директивы mod_setenvif в .htaccess на уровень выше, а остальное оставить.
Перенести в корневой .htaccess
Так тоже не работает.
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !good-agent [NC]
RewriteRule ^(.*)$ - [L,F]
Для кода 403 необходим флаг [F] в строке RewriteRule
SetEnvIfNoCase User-Agent "^good-agent" yes_ag
В шаблоне присутствует маркер начала строки ^ может ищете фрагмент в середине строки? Тогда его стоит убрать оставив только "good-agent"
Вот так работает:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !(good-agent) [NC]
RewriteRule ^ - [F,L]
Доступ получает только User-Agent: good-agent
Павел Зотов, спасибо, что натолкнули на верную мысль.
---------- Добавлено 12.02.2015 в 13:54 ----------
В шаблоне присутствует маркер начала строки ^ может ищете фрагмент в середине строки? Тогда его стоит убрать оставив только "good-agent"
Начало строки именно с good-agent, я попробовал по разному, но почему-то не работает.
Ваш изначальный код верен, только следует не в том порядке. Так надо:
SetEnvIfNoCase User-Agent "^good-agent" yes_ag
Order Deny, Allow
deny from all
allow from env=yes_ag