Рейтинг:0

Nginx предотвращает хотлинкинг и перенаправление не работает с новой версией Nginx

флаг sb

Раньше это работало отлично:

#домен1.com
расположение /файлы/ {
    valid_referers нет заблокированных domain1.com domain2.com domain3.com;
    если ($invalid_referer) {
        вернуть 403;
    }
    если (!-e $request_filename) {
        переписать ^(.*)$ https://domain2.com/files/$1 редирект; 
    }
}

но теперь не работает после обновления nginx

Я нашел это, кажется, не работает с новой версией nginx: https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/

Я также нашел этот хак для решения проблемы: https://agentzh.blogspot.com/2011/03/how-nginx-location-if-works.html

Но я не знаю, как заставить его работать.

Это мой файл .htaccess:

RewriteEngine включен
RewriteCond %{HTTP_REFERER} !domain1\.com [NC]
RewriteCond %{HTTP_REFERER} !domain2\.com [NC]
RewriteCond %{HTTP_REFERER} !domain3\.com [NC]
Правило перезаписи \.rar$ - [F,NC]
RewriteCond %{REQUEST_FILENAME} !-f
Правило перезаписи ^(.*)$ http://domain2.com/file/$1 [L,R,NC]
Michael Hampton avatar
флаг cz
Что вы подразумеваете под "не работает"? Это действительно не дает никакой полезной информации. Что именно происходит?
флаг sb
@Майкл Хэмптон 1. Наконец, перед обновлением nginx, если я просматриваю напрямую или нажимаю ссылку с других сайтов (кроме domain1.com domain2.com domain3.com), отображается запрещенная страница. Сейчас нет, может нормально показывает 2. Последнее, если http://domain1.com/file.html не существует, он перенаправляет на http://domain2.com/file.html Теперь не перенаправляет
Michael Hampton avatar
флаг cz
Это странно. Ваш блок `location` выглядит так, как будто он должен сделать это успешно. Возможно, в вашей конфигурации nginx есть что-то еще, что вызывает проблему. Пожалуйста, опубликуйте полный вывод команды `nginx -T`
флаг sb
Спасибо за вашу помощь, Майкл Хэмптон. Я думаю, что я должен переустановить сервер без nginx :)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.