PHP в деталях

Комментарии к статье ""


17.1.2001 14:13  cat  []

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

Есть гораздо более элегантные и красивые решения. Причем не ведущие за собой непредсказуемых результатов ( типа несуществующей картинки).

Да и как разобрать $REQUEST_URI это вообще не вопрос для обсуждения. Надо было предложить несколько вариантов написания .htaccess это было бы гораздо интереснее и было бы о чем поговорить.

Если интересно обращайся на мыло расскажу подробнее.

И конечно тебе не ответят на ленте ру как сделали они. Хотя большой тайны здесь нет они думают, что фантазия есть только у них :))

Ответ DL:

Большое спасибо! Выпуск #14 целиком и полностью твой :)

18.1.2001 19:00  Vitaliy  []

:) А интересно, что скажут поисковики на етот мнимый ErrorDocument?

Слышал, что для этой цели можно применить Апачевский mod_rewrite..Было бы интересно про это где-то почитать на понятном русском языке...или УРЛ..Спасибо.

Ответ DL:

Поисковики считают такие адреса нормальными - они делят всё на 200 Ok и 404 Not Found. А остальное им по барабану. mod_rewrite сейчас проходит у меня испытания.

19.1.2001 17:17  Dema

To: bigcat@

Ну выложи для всех твои решения...

Чаво умничать, а то мож они не такие красивые....

Ответ DL:

Он мне по почте описал решения, завтра-послезавтра выложу описание.

19.1.2001 20:46  ELis  []

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

Ответ DL:

Естественно.

21.1.2001 15:23  camel

редкостно кривой способ. есть apache, есть mod_rewrite для него - зачем изобретать велосипед?

Ответ DL:

Тем не менее, этот метод используют, и даже рекомендуют (). А про нормальный метод ? смотри выпуск #14.

22.1.2001 14:24  Роман  []

Проблема такая. Прописываю в htaccess ErrorDocument 404 all.php3 и у меня по 404 ошибке перескакивает на тот файл целиком. В нем же REQUEST_URI равен all.php3 а не виртуальному пути :( Если можно сразу ответить, пишите на arauf@mail.ru -- а то проблема висит :(

<


table width="100%" cellpadding="0" cellspacing="0" >25.1.2001 00:55  eXpert  []
Кто нибудь разобрался, как в методе "404" передать $QUERY_STRING?

Ну никак у меня не получилось. а нужно. например для поиска.
8.2.2001 15:31  Sasha  []
Может поможите люди добрые, у меня проблема. Я пишу в .htaccess вот это

ErrorDocument 404 /all.html

ErrorDocument 403 /all.html

ErrorDocument 402 /all.html

и пишу какой- то не правильный урл на моем сайте

http://www.mysite.com/blablabla а мне все равно выдается страничка браузера
Ответ DL:

Черным по белому написано же: header ("HTTP/1.0 200 Ok").
8.2.2001 22:55  Sasha  []
аааа, делал переадресацию и на PHP файл в котором в самом

начале было вот такое header ("HTTP/1.0 200 Ok")

но проблема еще вот в чем, под виндой эта фича не работает,

а пробовали тот же httpd.conf в линксе там заработало =(

немогу понять в чем дело
9.2.2001 00:30  Sasha  []
Я вот тут все еще сижу и тра*аюсь над всем этим делом.

Попробовал я все это дело в Netscape и он умница поведал мне

что я имею кроме Нот Фаунд еще и 500-ую ошибку связанную с ErrorDocument. Я тогда отключил хидер который посылает OK-OB :)

И у меня на время все заработало, но ИЕ делал переадресацию на файл который я подставляю, а нетскейп все красиво как я ввел (http://127.0.0.1/go/to/news) вот этот баг мне не понравился. После этого я подумал "Если работает без хидера

подставлю ка я .html файл" и тут все началось с начала :(

Возвращаю все обратно и в нетскейпе работает, а в эксплорере

нифига :( Ну что это такое и как с ним бороться???
Ответ DL:

Значит у тебя под линуксом php установлен как модуль (а иначе там нельзя, наверное), а под виндой - как CGI. "Отдельно стоящий" php не может посылать такие заголовки правильно. Выход ? либо поставить модуль, либо закомментировать строки с хедэрами (насколько я понимаю, под виндой ты тестируешь), а перед закачкой на сервер - раскомментировать. Остальное из того, что ты пишешь, для меня покрыто туманом ? выражайся яснее, а лучше пиши в форум.
14.2.2001 16:12  Sasha  []
Хе-хе. А у експлорера есть настройка которая

перехватвает все коды ошибок

Show friendly HTTP error messages

как с ней бороться? Не могу же я каждому пользователю говорить

что вот надо зайти и выключить эту фишку и у вас будет все работать.

Как вы от этого избавились?
Ответ DL:

№;%$^@! HEARED("HTTP/1.0 OK!!!");!!!
<


table width="100%" cellpadding="0" cellspacing="0" >18.2.2001 02:06  Konstantin
DL: Черным по белому написано же: header ("HTTP/1.0 200 Ok").

Это надо поставить строкой в .htaccess или куда то еще?
Ответ DL:

header - это функция php, значит надо писать это в скрипте-обработчике запросов.
18.2.2001 03:14  Константин
Немного в вдогонку. Как я понял, необходимо создать файл на PHP, который будет печатать необходимый хеадер и загружать страничку. Многие посетители Вашего сервера не знакомы даже с основами PHP, поэтому не могли бы Вы привести самый простой пример решения довольно таки актуальной для многих проблемы обработки ошибок експлорером?
Ответ DL:

Это здесь же и написано! :)
18.2.2001 14:27  Константин
Это правильно?

----- missing.html -----

<?php header("http/1.0 200 Ok"); ?>

<html>

<head>

<title>HTTP 404 - File not found</title>

</head>

HTTP 404 - File not found

</body>

</html>

----- missing.html -----
Ответ DL:

Да. Только в директории, в которой надо открывать missing.html по неправильному запросу, надо положить файл .htaccess с такой строкой:

ErrorDocument 404 missing.html

Кстати, расширение лучше не html, а php. Тут надо выполнять php-код, а файлы .html такую обработку обычно не проходят (настройки в mime.types).
1.3.2001 18:48  Максим  []
Если PHP стоит как модуль апача, то URL типа /somepage/foo/bar не вызывает ошибок, в случае если существует файл /somepage.php (расширение в URL тоже можно пропустить). Будет вызван /somepage.php, при этом $SCRIPT_NAME будет содержать "/somepage" (не somepage.php !!), в $PATH_INFO будет /foo/bar . Дальше с этим можно делать все что заблагорассудится. Полная иллюзия каталогов и файлов.
Ответ DL:

Такое вроде бы пройдет, но кое у кого возникают ошибки, если вызвать одновременно MultiViews и RewriteRule.
7.3.2001 10:21  Sasha  []
Спасибо тебе за помощь. Я вот по твоей статье сделал и все работает. Можно посмотреть здесь http://ezone.com.ua/news/
Ответ DL:

Душа радуется :)
21.3.2001 15:41  David Mzareulyan  []
2eXpert: Элементарно, Ватсон! $HTTP_SERVER_VARS["REDIRECT_QUERY_STRING"]

Парсить, увы, ручками...
<


table width="100%" cellpadding="0" cellspacing="0" >25.3.2001 20:09  seagulls  []
Спасибо большое за подробную полезную статью!
27.3.2001 00:18  ukrhotel  []
Спасибо!! Так долго об этом думал, мечтал. !!! И вчера прочитал вашу статью и сделал все точь в точь. Теперь жизнь новая начинается!!! www.ukrhotel.com User friendly URL URA
Ответ DL:

угу :)
27.3.2001 12:11  Sergei  []
Насчет - [14.02.2001 16:12] не совсем понятно. совмещать 2 headers ????
6.4.2001 12:33  Sergei  []
Ну не получается заставить работать 404..=( перепробовал все. В в конфиге апача не нужно ничего прописывать ? Насчет M$ не понятно.
Ответ DL:

В конфиге апача ничего прописывать не надо. Всё - в .htaccess
11.4.2001 20:28  eagle
Не совсем понятен совет писать в .htaccess, а не в апачевский конфиг.

Конфиг читается только призапуске сервера, а .htaccess при каждом обращении

к серверу - зачем сервер лишней работой грузить?
23.4.2001 11:00  Smith  []
Все типа правильно, но есть одно но... На access_log посмотрите, одни 404 :)
22.5.2001 19:15  Muxa  []
Нашёл статью.. и мею что сказать.

По наивности я тоже хотел сделать себе сайт на таком движке (сам изобрёл и был жутко горд).

Увы, обломал меня подлый IE 5.5. Он отказался работать с файлом (в вашем примере all.php) в случае если этот файл имеет размер меньше 512 байт.

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

Так что не всё так просто.

З.Ы. Впоследствии я узнал что изобретал собственный rewrite модуль. так что rtfm. :)
13.10.2001 10:01  Taras  []
А как, в таком случае получать данные из формы, если она была послана методом POST?

В какие переменные Апач засовывает эти данные?

Пока я только разобрался, что форма присланая методом GET лежит в REDIRECTED_QUERY_STRING (вообщем-то можно и через REQUEST_URI, но это чуть сложнее).
11.12.2001 08:43  DiMA  []
> Спасибо тебе за помощь. Я вот по твоей статье сделал и все работает. Можно посмотреть здесь

> http://ezone.com.ua/news/

Смотрим.

Warning: Unable to jump to row 0 on MySQL result index 2 in bynews.inc on line 18

Warning: Unable to jump to row 0 on MySQL result index 2 in bynews.inc on line 19
Ответ DL:

Оно там работало полгода назад, я сам видел :)
<


table width="100%" cellpadding="0" cellspacing="0" >6.2.2002 18:04  arhip  []
Есть еще один вариант извращенной емуляции mod_rewrite (проверено только в Апаче). Говорите Апачу, что файлы с расширением .news и .article - это ПХП скрипты. После этого создаете файлики (именно .news) а параметры передаете через $PATH_INFO. И получается, что при запроче урл вида www.site.com/.article/enot/2002-01-01/krasivo выполняется файлик .article, а /enot/2002-01-01/krasivo будет лежать в переменной окружения с именем PATH_INFO. О мне кажется, что это все для извращенцев или для людей, которые не могут по тем либо другим причинам поставить mod_rewrite.

Замечание: данная реализация изврата не будет работать, если ві используете CGI-ерсию ПХП.<


table width="100%" cellpadding="0" cellspacing="0" >11.3.2002 10:45  lauri  []
BTW: проблема с HREF в A и SRC у картинок IMHO решается введением в <head></head> докуменка <base href=http://www.mysite.com/>.<


table width="100%" cellpadding="0" cellspacing="0" >21.4.2002 18:15  Farid  []
Privet vsem. Sdelal kak napisano v stat'e no u menya nichego ne poluchilos

naprimer u menya takaya ssilka

news.php?id=3&date=01.01.2000

kak mne ukazat ssilku v html

i v php.<


table cellpadding="4" cellspacing="0" >архив | ссылки | форумы | что такое php<


table cellpadding="4" cellspacing="0" bgcolor="#e1e1e1">© , 2000-2002
© , 1999-2002
Содержание раздела