|
| Дата |
|
USD/RUB | 90.2486 | BTC/USD | 68435.2060 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
20.06.2020, 12:23
|
Start Post: Вопросы по NGINX
|
Senior Member
Регистрация: 01.10.2010
Адрес: https://bankle.ru/
Сообщений: 1,140
Бабло: $306180
|
Как сделать 301 редирект со всех под-доменов на основной домен? Пробовал вот такой вариант, но он не срабатывает
Код:
server {
server_name *.my-site.ru;
return 301 https://my-site.ru/;
}
|
|
|
19.12.2020, 15:19
|
#12
|
Senior Member
Регистрация: 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/ доступ был. Как в это условие добавить исключение папки?
|
|
|
19.12.2020, 18:47
|
#13
|
Юниор
Регистрация: 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;
}
}
|
|
|
19.12.2020, 19:37
|
#14
|
Yeah Bitch! Magnets!
Регистрация: 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 можно реализовать более компактно. Но я не вникал в её принцип действия.
__________________
Будь как Ной — греби, не ной!
|
|
|
20.12.2020, 11:08
|
#15
|
Senior Member
Регистрация: 29.01.2015
Сообщений: 486
Бабло: $66395
|
Когда кто-то даёт такие советы, то где-то далеко Сысоев(создатель nginx) нервно закуривает iqos.
Для всего этого нужно использовать map.
Вот хороший топик:
https://www.gofuckbiz.com/showthread.php?t=39716
|
|
|
20.12.2020, 20:24
|
#16
|
Yeah Bitch! Magnets!
Регистрация: 02.12.2010
Сообщений: 619
Бабло: $93034
|
Ну конечно же, очередной "лично знакомый" Сысоева.
Во первых, здесь никто никакие советы не дает. Здесь решают задачи.
Во вторых, способ выше с if действительно далёк от совершенства, так как сама реализация директивы if в nginx неочевидна, и, возможно, сложна. Приведённый способ является костылем. Но стоит также заметить, что появление этого способа является логичным следствием отсутствия в директиве if возможности вложенности. Способ придуман не мной, а описан во многих других статьях в гугле(привет, я умею гуглить, а ты?), например, на хабре:
https://habr.com/ru/post/231277/
В третьих,
Цитата:
Для всего этого нужно использовать map.
|
Нужно регулярно душ принимать, чтобы не завоняться. Я достаточно четко, точно, последовательно, и логично продуцирую здесь мысль, относительно разницы приоритета в утверждении "нужно" в различающихся контекстах?
__________________
Будь как Ной — греби, не ной!
|
|
|
21.12.2020, 10:56
|
#17
|
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; }
# дальнейшая логика обработки запроса
}
Ещё вопросы есть?
|
|
|
21.12.2020, 16:26
|
#18
|
Yeah Bitch! Magnets!
Регистрация: 02.12.2010
Сообщений: 619
Бабло: $93034
|
Лично к тебе? -Нет. То что тебе показалось, что таковые есть, были - риторическими.
__________________
Будь как Ной — греби, не ной!
|
|
|
|