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

Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева

VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Ну вот и косяк, у вас в синтаксисе. А не if запретил nginx. Он всегда будет работать т.к. даже при map вам надо будет проверять переменную через if
Правильный код:
if ($http_user_agent ~* (bot1|bot2|bot3) ) {
return 444;
}
Было так
if ($http_user_agent ~* bot1|bot2|bot3 ) { return 444; }
Успешно работало на старом сервере, переехала на новый и if вызвал ошибку. Хостер сам предложил использовать map.
Лучше ВЕСЬ конфиг покажите, куда вы это пытаетесь вставить.
Nginx пишет чисто на человеческом, что ТУДА куда вы вставляете этого делать нельзя.
vhosts-includes
Лучше ВЕСЬ конфиг покажите, куда вы это пытаетесь вставить.
Nginx пишет чисто на человеческом, что ТУДА куда вы вставляете этого делать нельзя.
Сам nginx.conf хостер не изменял, лишь добавил map $http_user_agent $limit_bots в секцию http.
Само же правило if ($limit_bots = 1) { return 444; } вынес в какой-то шаблон, имя/директория файла шаблона мне неизвестны.
И теперь, в /etc/nginx/conf.d/domains/хостнейм.conf правило if ($limit_bots = 1) { return 444; } выводится автоматом в секции server.
Как-то так получается, хостер ничего не объяснял, а я в этом не сильна.
К сожалению, данная конструкция не работает
А именно, не работает ~^$ 1;
Пустым юзерагентам отдается код 200.
Может всё-таки правильно так ~(^$) 1; ?
данная конструкция не работает
Я дико извиняюсь, но на всякий случай спрошу: а Вы сервер перезагрузили?
Пробовала так:
map $http_user_agent $limit_bots {
default 0;
~*(Bot1|Bot2|Bot3) 1;
~^$ 1;
}
и так:
map $http_user_agent $limit_bots {
default 0;
~*(Bot1|Bot2|Bot3) 1;
~(^$) 1;
}
и вот так:
map $http_user_agent $limit_bots {
default 0;
~*( ^$ |Bot1|Bot2|Bot3) 1;
}
Во всех вариантах ответ 200 для пустого юзерагента.
Пробовала так:
и так:
и вот так:
Это равнозначные варианты, как Вы уже наверное догадались. Кроме последнего варианта, он неправильный, потому что там пробел.
В всех вариантах ответ 200 для пустого юзерагента.
А может быть, он всё же не пустой в Вашем тесте?