Вопросы по NGINX - Форум успешных вебмастеров - GoFuckBiz.com - Страница 2
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB90.2486
BTC/USD68435.2060
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 20.06.2020, 12:23
Start Post: Вопросы по NGINX 
  #11
Fubu_By
Senior Member
 
Аватар для Fubu_By
 
Регистрация: 01.10.2010
Адрес: https://bankle.ru/
Сообщений: 1,140
Бабло: $306180
Question

Как сделать 301 редирект со всех под-доменов на основной домен? Пробовал вот такой вариант, но он не срабатывает
Код:
server {
  server_name *.my-site.ru;
  return 301 https://my-site.ru/;
}
__________________
❗ ESSAY партнерка #1 - EduCashion.net - Топ конверт, высокие выплаты.
Fubu_By вне форума  
Старый 19.12.2020, 15:19   #12
Fubu_By
Senior Member
 
Аватар для Fubu_By
 
Регистрация: 01.10.2010
Адрес: https://bankle.ru/
Сообщений: 1,140
Бабло: $306180
ТС -->
автор темы ТС По умолчанию

закрыл сайт(на WP) от индексации
Код:
if ($http_user_agent ~* "Pinterestbot|Googlebot|Googlebot-Image|msnbot|ahrefsbot|mj12bot|megaindex|bingbot|linkpadbot|baiduspider|moreover|BPImageWalker|spbot|LinkWalker|orangebot|BLEXBot|HTTrack|DotBot|yandex|DomainCrawler|AlphaBot|GrapeshotCrawler|SemrushBot|Yahoo|aranhabot") {
        return 403;
    }
но мне надо, чтобы к /wp-content/uploads/ доступ был. Как в это условие добавить исключение папки?
__________________
❗ ESSAY партнерка #1 - EduCashion.net - Топ конверт, высокие выплаты.
Fubu_By вне форума  
Старый 19.12.2020, 18:47   #13
Dash
Юниор
 
Регистрация: 08.03.2017
Сообщений: 12
Бабло: $3525
По умолчанию

Запретить индексацию всего сайта кроме папки.
Код:
location ~ ^/wp-content/uploads/ {
if ($http_user_agent ~* "Pinterestbot|Googlebot|Googlebot-Image|msnbot|ahrefsbot|mj12bot|megaindex|bingbot|linkpadbot|baiduspider|moreover|BPImageWalker|spbot|LinkWalker|orangebot|BLEXBot|HTTrack|DotBot|yandex|DomainCrawler|AlphaBot|GrapeshotCrawler|SemrushBot|Yahoo|aranhabot") {
        return 403;
    }
}
Dash вне форума  
Старый 19.12.2020, 19:37   #14
Scofield
Yeah Bitch! Magnets!
 
Аватар для Scofield
 
Регистрация: 02.12.2010
Сообщений: 619
Бабло: $93034
По умолчанию

Fubu_By,
Код:
set $chk 0;
if ($http_user_agent ~* "Pinterestbot|Googlebot|Googlebot-Image|msnbot|ahrefsbot|mj12bot|megaindex|bingbot|linkpadbot|baiduspider|moreover|BPImageWalker|spbot|LinkWalker|orangebot|BLEXBot|HTTrack|DotBot|yandex|DomainCrawler|AlphaBot|GrapeshotCrawler|SemrushBot|Yahoo|aranhabot") {
    set $chk 1;
}
if ($request_uri !~* "/wp-content/uploads/") {
    set $chk "${chk}2";
}
if ($chk = "12") {
    return 403;
}
Также можешь погуглить за директиву map. С её помощью вложенные условия if можно реализовать более компактно. Но я не вникал в её принцип действия.
__________________
Будь как Ной — греби, не ной!
Scofield вне форума  
Старый 20.12.2020, 11:08   #15
gumu
Senior Member
 
Регистрация: 29.01.2015
Сообщений: 486
Бабло: $66395
По умолчанию

Когда кто-то даёт такие советы, то где-то далеко Сысоев(создатель nginx) нервно закуривает iqos.
Для всего этого нужно использовать map.
Вот хороший топик:
https://www.gofuckbiz.com/showthread.php?t=39716
gumu вне форума  
Старый 20.12.2020, 20:24   #16
Scofield
Yeah Bitch! Magnets!
 
Аватар для Scofield
 
Регистрация: 02.12.2010
Сообщений: 619
Бабло: $93034
По умолчанию

Ну конечно же, очередной "лично знакомый" Сысоева.
Во первых, здесь никто никакие советы не дает. Здесь решают задачи.
Во вторых, способ выше с if действительно далёк от совершенства, так как сама реализация директивы if в nginx неочевидна, и, возможно, сложна. Приведённый способ является костылем. Но стоит также заметить, что появление этого способа является логичным следствием отсутствия в директиве if возможности вложенности. Способ придуман не мной, а описан во многих других статьях в гугле(привет, я умею гуглить, а ты?), например, на хабре:
https://habr.com/ru/post/231277/

В третьих,
Цитата:
Для всего этого нужно использовать map.
Нужно регулярно душ принимать, чтобы не завоняться. Я достаточно четко, точно, последовательно, и логично продуцирую здесь мысль, относительно разницы приоритета в утверждении "нужно" в различающихся контекстах?
__________________
Будь как Ной — греби, не ной!
Scofield вне форума  
Старый 21.12.2020, 10:56   #17
gumu
Senior Member
 
Регистрация: 29.01.2015
Сообщений: 486
Бабло: $66395
По умолчанию

Цитата:
Сообщение от Scofield Посмотреть сообщение
Ну конечно же, очередной "лично знакомый" Сысоева.


Цитата:
Сообщение от Scofield Посмотреть сообщение
Во первых, здесь никто никакие советы не дает. Здесь решают задачи.
Во вторых, способ выше с if действительно далёк от совершенства, так как сама реализация директивы if в nginx неочевидна, и, возможно, сложна. Приведённый способ является костылем. Но стоит также заметить, что появление этого способа является логичным следствием отсутствия в директиве if возможности вложенности. Способ придуман не мной, а описан во многих других статьях в гугле(привет, я умею гуглить, а ты?), например, на хабре:
https://habr.com/ru/post/231277/

В третьих,
Цитата:
Для всего этого нужно использовать map.
Нужно регулярно душ принимать, чтобы не завоняться. Я достаточно четко, точно, последовательно, и логично продуцирую здесь мысль, относительно разницы приоритета в утверждении "нужно" в различающихся контекстах?
Я неверно выразился - не нужно использовать map, а не нужно использовать if/rewrite, там где без него можно обойтись.
Если ты умеешь гуглить, то гугли по правильным сайтам, как-то официальная документация/рассылка nginx. Я просто приведу 2 письма Сысоева, которые нашлись достаточно быстро, но таких писем там намного больше(ищи по if):

http://mailman.nginx.org/pipermail/n...ch/016795.html

http://mailman.nginx.org/pipermail/n...st/027313.html

Насчёт задачи ТС:
1. в nginx.conf:
Код:
include conf.d/*.conf;
2. conf.d/bad_ua.conf:
Код:
map $http_user_agent            $bad_ua {
  default                       0;
  "~*Pinterestbot"         1;
  "~*Googlebot"            1;
  # остальные плохие боты
}
3. в vhost.conf(у меня там server-ы), в нужном server:
Код:
  location /wp-content/uploads/ {
    expires 3d; # отдача статики, если динамика то нужно писать логику для динамики
  }

  location / {
    if ($bad_ua) { return 403; }
    # дальнейшая логика обработки запроса
  }

Ещё вопросы есть?
gumu вне форума  
Старый 21.12.2020, 16:26   #18
Scofield
Yeah Bitch! Magnets!
 
Аватар для Scofield
 
Регистрация: 02.12.2010
Сообщений: 619
Бабло: $93034
По умолчанию

Лично к тебе? -Нет. То что тебе показалось, что таковые есть, были - риторическими.
__________________
Будь как Ной — греби, не ной!
Scofield вне форума