Jump to content
Калькуляторы

nginx запретить браузеру кешировать редиректы

Делаю роутер для Free Wifi Hotspot с рекламой.

Рекламная страница должна показываться один раз при подключении.

Т.е. юзер подключается к вафле, открывает браузер, вместо его любимого сайта открывается рекламка с кнопкой продолжить. Юзер жмякает по кнопке продолжить и его редиректит на его любимый сайт.

 

В принципе все сделал:

Завернул с помощью iptables весь трафик по 80 порту в nginx, установленный на роутере.

nginx на любой url отдает 302 редирект на страничку с рекламой

Со странички по нажатию на кнопку открываем доступ, делаем переход на исходный сайт,

но вот тут подстава: браузер запомнил, что на mail.ru (к примеру) отдавался код 302 и сразу уходит снова на страничку с рекламой.

 

Делал 5-ти секундную задержку для перехода (чтобы Iptables точно успевал отработать) - не помогло.

Через пару минут браузер идет сразу на mail.ru

 

Конфиг nginx:

 

 

server {
   listen       80;
   server_name  localhost;
   access_log /var/log/nginx/access.log vhost_ip_full_format;
   root           /var/www/htdocs;
   index index.php;

   location / {
       if ($host !~ ^(192.168.100.1)$ ) {
           add_header Cache-Control "no-cache, no-store";
           expires 0;
           rewrite ^ http://192.168.100.1/index.php?host=$host$request_uri redirect;
       }
   }

   location ~ \index.php$ {
       fastcgi_pass   127.0.0.1:9000;
       fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME  /var/www/htdocs$fastcgi_script_name;
       include        fastcgi_params;
   }
}

 

Share this post


Link to post
Share on other sites

connection close!!!

а у вас походу кипалив с нгинхом, вот иптаблес и продолжает пересылать пакеты ибо соединение ещё активно, а оно у него в контраке должно быть...

Share this post


Link to post
Share on other sites

Если делаю редирект на любой другой сайт, то все проходит нормально.

Как может быть keepalive с nginx, если я по-сути по разным адресам скачу? mail.ru -> 192.168.100.1 -> mail.ru

Share this post


Link to post
Share on other sites

Хм. и правда keepalive_timeout 0 помог, Правда IE все-равно тупит и только со второго раза переходит куда надо.

Share this post


Link to post
Share on other sites

Сделайте чтобы нгинх отдавал: connection: close заголовок, ну может ещё в нём настройки есть для этого. и браузеры будут сами рвать соединение после получения ответа.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.