Реклама на сайте Advertise with us

PHP отдать 404 ошибку

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 08/12/14 в 18:28       Ответить с цитатойцитата 

Скрипт по get параметру отдаёт страницы. Если параметр взят с потолка, то скрипту соотвественно надо отдать 404ю, например:
Код:
if (нихуя) {
  header("HTTP/1.1 404 Not Found");
  header("Status: 404 Not Found");
  die(file_get_contents('/404.html'));
}


1) Только предположим, что в апаче или htaccess уже есть настройка
ErrorDocument 404 /404_new.html
Программисту данный пример не понравится, так как есть дубли кода (путь к дизайну 404 страницы). Можно ли как-то на php отдавать вместе с заголовком дефолтную серверную 404 страницу в браузер сёрферу, чтоб не настраивать отдельно дизайн страницы в php и на сервере?

2) Корректно ли у меня в примере вариант хедера для fast-cgi пихать в одну кучу с апачевским?

0
 
+ +
WP-Master

С нами с 17.01.13
Сообщения: 1922
Рейтинг: 1123


Передовик Master-X (16.02.2015) Передовик Master-X (01.03.2015)
Ссылка на сообщениеДобавлено: 08/12/14 в 18:49       Ответить с цитатойцитата 

header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
Так коректней, нет редирект 404 не выйдет.

8
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 09/12/14 в 14:59       Ответить с цитатойцитата 

Спасибо за совет.
А есть какя-то идея отдавать саму страницу\дизайн 404 в варианте, который настроен на сервере?

0
 

💀💀💀

С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728

Ссылка на сообщениеДобавлено: 09/12/14 в 16:03       Ответить с цитатойцитата 

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

0
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 09/12/14 в 17:49       Ответить с цитатойцитата 

Хотелось бы отдавать ту, которая настроена в апачевском конфиге или в htaccess, дапбы дизайн страниц саовпадал.

0
 



С нами с 18.10.02
Сообщения: 4165
Рейтинг: 3365

Ссылка на сообщениеДобавлено: 09/12/14 в 20:29       Ответить с цитатойцитата 

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

8
 

💀💀💀

С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728

Ссылка на сообщениеДобавлено: 09/12/14 в 20:30       Ответить с цитатойцитата 

так в .хтаксес отдавай свою 404

Код:
ErrorDocument 404 http://mysite.com/404.html

8
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 09/12/14 в 20:44       Ответить с цитатойцитата 

Ailk: Как тогда не меняя кода в php отдать в скриптом ту же самую http://mysite.com/404.html ?
Предположим я поменял URL к 404.html или установил скрипт на другой домен, на другой сервер...

0
 

💀💀💀

С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728

Ссылка на сообщениеДобавлено: 09/12/14 в 21:19       Ответить с цитатойцитата 

никак, только вручную задавать переменную в конфиге апача, как мика сказал. Или через хтакцесс.

0
 



С нами с 22.05.04
Сообщения: 268
Рейтинг: 251

Ссылка на сообщениеДобавлено: 10/12/14 в 01:25       Ответить с цитатойцитата 

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

Код: [развернуть]


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

Нестандартные задачи. Кастом программинг на ПХП. Оптимизация стороннего кода. Недорого, недешево.

0
 



С нами с 17.03.12
Сообщения: 335
Рейтинг: 790

Ссылка на сообщениеДобавлено: 10/12/14 в 02:21       Ответить с цитатойцитата 

Не надо так делать
die(file_get_contents('/404.html'));
file_get_contents($default_htaccess)

Вы сервер до смерти затрахаете этим, если часто будет это выполняться. А выполняться оно будет часто, потому что 404 ошибок обычно много.

0
 



С нами с 22.05.04
Сообщения: 268
Рейтинг: 251

Ссылка на сообщениеДобавлено: 10/12/14 в 04:07       Ответить с цитатойцитата 

Sargas писал:


Не надо так делать
Код: [развернуть]

Вы сервер до смерти затрахаете этим, если часто будет это выполняться. А выполняться оно будет часто, потому что 404 ошибок обычно много.



хз что там у ТС с die(file_get_contents('/404.html')); (ибо readfile() адекватнее),
но что касается моего коммента - специально выделил

rx писал:

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


в тру хардкорных случаях после первого запуска полученное значение кидается в мемкеш или еще куда душе угодно или банально перезаписывается общий конфиг файл, и апдейтится по триггерам (событийные, кнопка "настроить", контроль спайдером смены размера/даты или банально резапуск по крону, етц)

и моя практика показывает что если сервак кончается от пары вызовов на чтение - это как правило не пара вызовов на чтение виноваты trollface.png

Нестандартные задачи. Кастом программинг на ПХП. Оптимизация стороннего кода. Недорого, недешево.

0
 

💀💀💀

С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728

Ссылка на сообщениеДобавлено: 10/12/14 в 06:46       Ответить с цитатойцитата 

Ха! Смелое решение smail54.gif Но что если 404 файл прописан не в верхнем акцессе, а прямо в конфиге апача для всех серверов? Или того хуже в качестве сервера стоит нгинкс голый или лайтхттпд?

0
 



С нами с 22.05.04
Сообщения: 268
Рейтинг: 251

Ссылка на сообщениеДобавлено: 10/12/14 в 09:39       Ответить с цитатойцитата 

Ailk писал:
Но что если 404 файл прописан не в верхнем акцессе, а прямо в конфиге апача для всех серверов?


указать по умолчанию на поиск другой файл/симлинк или сделать htaccess каталогом выше. но задачи как на фри хосте что-то изобрести - это обычно из другой оперы trollface.png

Ailk писал:
Или того хуже в качестве сервера стоит нгинкс голый или лайтхттпд?



у любого из них есть конфигурационный файл trollface.png

та же подстрока error_page 404 для нгинкса или server.error-handler-404 для лайтхттпд


зы - нет универсального эффективного решения ВСЕХ проблем сразу. но если есть конкретная задача - всегда есть ее эффективное решение icon_wink.gif

Нестандартные задачи. Кастом программинг на ПХП. Оптимизация стороннего кода. Недорого, недешево.

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 10/12/14 в 11:31       Ответить с цитатойцитата 

Не понимаю, нафига себе пудрить мозги до такой степени. Взяли и решили "ошибку у нас отдает /404.php". В дальнейшем на него все и заворачивается. И в нем хоть редирект влупите по желанию.


S_Flash писал:
Предположим я поменял URL к 404.html или установил скрипт на другой домен, на другой сервер...

/404.php внутри домена будет всегда иметь один и тот же путь DOCUMENT_ROOT/404.php

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

0
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 10/12/14 в 21:45       Ответить с цитатойцитата 

Stek:
Какой итоговый код на php будет корректным для Apache и fast-cgi, если принять как правило, что страница дизайна ошибки /404.php?

0
 

продаю базы адалт кейвордов

С нами с 09.11.02
Сообщения: 9045
Рейтинг: 3772


Передовик Master-X (16.05.2004) Передовик Master-X (01.06.2004)
Ссылка на сообщениеДобавлено: 10/12/14 в 22:04       Ответить с цитатойцитата 

Вот так нормально работает
----------------------------
header("HTTP/1.1 404 Not Found");
virtual("/404.php");
----------------------------
отдается страница из корня с хедером Not Found

сдам подпись, стучите в личку

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 10/12/14 в 22:17       Ответить с цитатойцитата 

S_Flash писал:
Какой итоговый код на php будет корректным для Apache и fast-cgi, если принять как правило, что страница дизайна ошибки /404.php?


Код:
<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/404.php');
die;


В все заголовки и прочее уже в 404.php пихать. В таком случае если решите вдруг отдавать 302 или 200, то поменять придется только в одном месте.

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »