За последние 24 часа нас посетили 107788 программистов и 5779 роботов. Сейчас ищут 2687 программистов ...

Server Response

Тема в разделе "PHP для новичков", создана пользователем milhibisidek, 23 фев 2016.

  1. milhibisidek

    milhibisidek Новичок

    С нами с:
    5 июл 2014
    Сообщения:
    5
    Симпатии:
    0
    Добрый день, Товарищи!
    недавно я занялся написанием captive portal и столкнулся с проблемой.
    у людей кешируется мой редирект.
    Алгоритм у меня такой
    Всех кто подключается к гостевому wifi я средствами фаирвола отправляю на мой веб сервер
    Код (PHP):
    1. rdr pass on $lan2 inet proto tcp from !<reklama> to !<notproxy> port http -> 192.168.1.1 port http
    Далее чтобы страница у пользователя открывалась автоматически использую 301 redirect
    Код (PHP):
    1. <?php
    2. header("HTTP/1.1 301 Moved Permanently");
    3. header("Location: http://".$_SERVER['SERVER_ADDR']."/index2.php");
    4. exit();
    5. ?>
    Гость открывает страницу i.ua ему выскакивает моё рекламное окно, он жмёт, войти в интернет с этого момента у него есть интернет, но проблема в том что если он захочет зайти на сайт i.ua ему снова выскочит рекламная страница. Страница i.ua взята за пример, вместо неё может быть любая другая страница.
    если посмотреть кеш браузера, то в Server Response он запомнит HTTP/1.1 301 Moved Permanently
    отсюда вопрос, как сделать так чтобы браузер не запоминал HTTP/1.1 301 Moved Permanently ?

    Спасибо за помощь

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.870
    Симпатии:
    955
  3. milhibisidek

    milhibisidek Новичок

    С нами с:
    5 июл 2014
    Сообщения:
    5
    Симпатии:
    0
    header("Location: http://".$_SERVER['SERVER_ADDR']."/index2.php",TRUE,302);

    Так верно?
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.870
    Симпатии:
    955
    работает?
     
  5. milhibisidek

    milhibisidek Новичок

    С нами с:
    5 июл 2014
    Сообщения:
    5
    Симпатии:
    0
    да, как ни странно работает) но вот почему?

    Спасибо
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Moved Permanently - перемещён постоянно, поэтому браузер кешит (постоянно, значит не поменяется, значит, зачем делать лишний запрос на удалённый сервер?). А статус 302 - Moved Temporarily, т.е. перемещён временно, поэтому не кешит.
     
  7. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.870
    Симпатии:
    955
    ни.
    протоколу передачи гипертекста уже тридцать с лишним лет. документация лежит в открытом доступе. все статусы и поведения клиентов там вполне доступным языком описаны.
     
  8. milhibisidek

    milhibisidek Новичок

    С нами с:
    5 июл 2014
    Сообщения:
    5
    Симпатии:
    0
    Спасибо.
    Поправил) спасибо.
    дельное замечание, спасибо.