nginx - как выполнить перенаправление в зависимости от диапазона IP-адресов?

Я пытаюсь сделать сайт доступным только изнутри локальной сети, и люди из внешней сети получат статическую страницу с другим сообщением.

Это это то, что я пытаюсь сделать, но, похоже, это не работает. В чем я ошибся?

         if ($remote_addr != 192.168.1.0/24) {
                   rewrite ^/* /covid19 last;
         }
1
задан 26 March 2020 в 07:39
1 ответ

$ remote_addr - это единственный IP-адрес (например, 192.168.1.123 ), поэтому он не будет напрямую сравниваться с строка 192.168.1.0/24 .

Если вы сравниваете IP-адрес с блоком / 24 , вы можете использовать регулярное выражение, которое проверяет только первые три числа.

Например:

if ($remote_addr !~ "^192\.168\.1\.") { ... }

См. этот документ для получения подробной информации, и это предупреждение об использовании if .

0
ответ дан 30 March 2020 в 00:20

Теги

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