Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Обработка любого обращения, даже по несуществующему адресу

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
shob_vas
Отправлено: 27 Мая, 2009 - 12:38:06
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Например Пользователь обращается по адресу www[dot]abc[dot]com/notexist.php
Файла notexist.php не существует. Как выдать пользователю сообщение об ошибке и вообще обработать такой запрос?

(Отредактировано автором: 27 Мая, 2009 - 12:39:05)

 
 Top
vitaliy_mad
Отправлено: 27 Мая, 2009 - 12:46:09
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




файл .htaccess
параметр
ErrorDocument 404 /путь/к/файлу/обработки
 
 Top
shob_vas
Отправлено: 27 Мая, 2009 - 13:01:33
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




А это нормальный путь если я хочу чтобы любые запросы обрабатывались одним php-шником?

То есть у меня будут на сайте ссылки типа www[dot]abc[dot]com/abc/
Но запросы я хочу чтобы обрабатывал www[dot]abc[dot]com/index.php
И нормальный ли это вариант для поисковиков? Вообще хоть ктонибудь будет знать кроме сервера что вызвана ошибка 404?
 
 Top
vitaliy_mad
Отправлено: 27 Мая, 2009 - 13:08:37
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




ErrorDocument 404 /index.php?err=404

index.php:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if ($_GET['err']=='404')echo "такой страницы нет...";
 
 Top
shob_vas
Отправлено: 27 Мая, 2009 - 15:18:00
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Это нормальный вариант для поисковиков? Вообще хоть ктонибудь будет знать кроме сервера что вызвана ошибка 404?

Я хочу чтобы любые запросы обрабатывались одним phpшником
 
 Top
vitaliy_mad
Отправлено: 27 Мая, 2009 - 15:20:11
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




shob_vas пишет:
Это нормальный вариант для поисковиков?

да
shob_vas пишет:
Вообще хоть ктонибудь будет знать кроме сервера что вызвана ошибка 404?

да. при правильной настройке
shob_vas пишет:
Я хочу чтобы любые запросы обрабатывались одним phpшником

и?
 
 Top
valenok Модератор
Отправлено: 27 Мая, 2009 - 15:22:05
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




ну да, apache выдает код страницы 404
Примерно так должно быть


RewriteEngine On
RewriteBase /
RewriteRule ^(*)$ index.php?$1 [L,QSA]


-----
Truly yours, Sasha.
 
My status
 Top
EuGen Администратор
Отправлено: 28 Мая, 2009 - 11:15:06
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Я бы не рекомендовал убирать 404-й ответ, для поисковиков это будет вредно. То бишь если Ваш сервер на несуществубщие запросы будет отдавать какую-то страницу (пусть и с сообщением об ошибке), которую Вы написали, но при этом отсылать 200 OK, то это будет не по стандарту.
Да, если при этом не позаботиться о запрете ее индексирования, то ее вдобавок еще и заиндексируют.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
shob_vas
Отправлено: 28 Мая, 2009 - 13:54:34
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




А как мне в самом php-шнике сэмулировать 404й ответ?
 
 Top
EuGen Администратор
Отправлено: 28 Мая, 2009 - 13:58:01
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




CODE (text):
скопировать код в буфер обмена
  1.  
  2. header("HTTP/1.0 404 Not Found");
  3.  


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
shob_vas
Отправлено: 28 Мая, 2009 - 14:29:56
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Всем большое спасибо! Всеми советами воспользовался - всем очень благодарен!
Тема закрыта
 
 Top
Гость
Отправлено: 29 Мая, 2009 - 17:57:28
Post Id


УДАЛЁН










EuGen А вы уверены что так можно посылать? Это же не NPH-скрипт помоему Apache в данном случае должен обрабатывать поле Status к примеру Status: HTTP/1.1 404 NotFound Или PHP сам подсовывает слово Status?
(Добавление)
shob_vas А что мешает исчпользовать параметр ErrorDocument в .htaccess для задания страницы ошибок (Информация о странице на которой произошла ошибка будет доступна в переменной окружения)
 
 Top
Mx
Отправлено: 02 Июня, 2009 - 20:03:53
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




www[dot]abc[dot]com/notexist.php

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

а как обработчику получить переменную notexist.php ?
 
 Top
Гость
Отправлено: 03 Июня, 2009 - 16:33:33
Post Id


УДАЛЁН










Mx В реферере должна быть по идее (Хотя посомтрите полный список переменных окружения помоему там есть отдельная переменая для этих целей)
 
 Top
EuGen Администратор
Отправлено: 03 Июня, 2009 - 21:13:13
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




JustUserR
Уверен. По крайней мере, 500-я ошибка таким способом отправляется. Это всего лишь переопределение статуса ответа.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB