Исключить iframe для вставки документа Google из правила перезаписи nginx?

Я надеюсь, что кто-то может мне помочь, так как у меня очень ограниченные знания о вещах, связанных с сервером.

У меня есть сайт WordPress, на котором я хочу ограничить доступ к каталогу /wp-content/uploads/ только авторизованными пользователями. Для этого я использовал обходной путь, указанный в следующей ссылке на сервере nginx :

https://wordpress.stackexchange.com/questions/37144/how-to-protect-uploads-if-user-is-not-logged-in

, и это решение работает нормально. Однако есть проблема.

У меня есть несколько PDF-файлов, встроенных через Google doc embed на определенные страницы.Встраивание документа Google используется для загрузки PDF-файлов следующим образом:

<iframe src="//docs.google.com/viewer?url=https://link-to-file.pdf&amp;hl=en_US&amp;embedded=true" class="" style="width:100%; height:500px; border: none;" scrolling="no"></iframe>

Мое правило nginx выглядит следующим образом:

location ~* /(?:uploads)/* {
   rewrite /wp-content/uploads/(.*)$ /dl-file.php?file=$1;
}

Как я могу исключить указанный выше iframe или //docs.google.comURL-адрес из этого правила?

Будем признательны за любую помощь.

Спасибо

Бакар

1
задан 9 November 2021 в 15:04
1 ответ

Вы можете использовать рефереры(http://nginx.org/en/docs/http/ngx_http_referer_module.html#valid_referers)

valid_referers none blocked server_names docs.google.com;

Вместо этого вы можете просто использовать переменную $invalid_referer в вашем блоке местоположения.

if ($invalid_referer) {
    rewrite /wp-content/uploads/(.*)$ /dl-file.php?file=$1;
}
0
ответ дан 9 November 2021 в 16:25

Теги

Похожие вопросы