За последние 24 часа нас посетил 16881 программист и 1641 робот. Сейчас ищут 905 программистов ...

Header("HTTP/1.0 200 OK") а статус всё равно 404

Тема в разделе "PHP для новичков", создана пользователем izstora, 12 ноя 2007.

  1. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Гы))) Пару раз приходилась разгребать подобные «элегантные решения», направляя все запросы, не относящиеся к файлам, в единую точку входа, осуществляя в ней их роутинг. Где вы раньше были? Можно же было оставить, как есть, сославшись на вас :) При использовании ErrorDocument сервер сам формирует заголовок с соотв. статусом. Максимум, что там нужно делать, так это уточнять причину ошибки. Далеко не все ошибки Web-сервер способен распознать самостоятельно, а коли все равно приходится делать обработку ошибок, почему бы это не делать единообразно в одной точке входа. Регулярка для обозначения любых строк элементарная (я обычно пишу^.*, хотя можно еще короче). Зато вообще не нужно писать директивы ErrorDocument.

    Ну и некропостер, причем даже не извинился.
     
    #26 miketomlin, 11 авг 2016
    Последнее редактирование: 11 авг 2016
  2. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
  3. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    В принципе можно попробовать использовать обработчик, указанный в ErrorDocument, как единую точку входа, если получится отменить или переопределить предопределенный сервером статус ошибки, когда происходит попадание в валидный адрес.
     
  4. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Для всех спорщиков могу предложить идеальное решение:
    Код (Text):
    1.     location / {
    2.         fastcgi_pass unix:/var/run/php-fpm.sock;
    3.         fastcgi_param SCRIPT_FILENAME /var/www/site.com/index.php;
    4.         include /etc/nginx/fastcgi_params;
    5.     }
    Гарантировано все запросы идут только на индекс. А статику на другой локейшн.
     
    askanim, Ganzal и mr.akv нравится это.
  5. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @miketomlin ты походу не знаешь, что такое mvc
     
  6. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Соврешенно пофиг, будут в апаче загонять запрос в точку входа через еррордокумент или реврайт. Кому как нравится. Есть нюансы, конечно: еррордокумент отрабатывает, когда уже завершен uri->file мапинг, а мод-реврайт - до этого, но для большинства сайтиков это равноценно. К слову, в nginx тоже иногда используются return code + error_page code @point.
     
  7. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    @askanim, и что тебя натолкнуло на эту сакральную мысль?
    --- Добавлено ---
    Я вот тоже склоняюсь к этому. Помню, что когда-то даже экспериментировал с ErrorDocument, но т.к. у меня никто mod_rewrite и т.п. не отнимал, остановился на более распространенном варианте. Кто ж думал, что через н-ное кол-во лет встречу чел-а, которому регулярки в правилах религия не позволяет использовать.
     
  8. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    если хочется извращений с апачем, это значит, что пора перелезть на нгинкс