Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Обработчик 404 ошибки

314
10 июня 2006 года
fanto
374 / / 15.02.2003
Шеф тут поставил интересную задачу -- тапа РНРшный сайт сделать так, чтобы создавалось впечатление, что он ХТМЛный...
Пошел следующим путем -- создал обработчик 404 ошибки кинул туда

header("http/1.1 200 Ok");
$url=$_SERVER['REDIRECT_URL'];

Дальше switch`ем обрабатываю $url, настраиваю свои переменные и инклудом подключаю собственно сайт...
Это позволило сохранить в УРЛовой строке "неправильный" адрес,
НО! (как же без НО :)
Вылез интересный глюк -- у многих людей "липовые" ссылки отрабатывают через раз, в то время как на других машинах все das ist gut!

зайдите посмотрите : http://evm.in.ua

Просто мистика...

ЗЫ. А есть ли какой-то менее извратный способ добиться "ХТМЛ" ссылок на чисто РНРшном движке? Мож я вобще бред натворил?...
15
10 июня 2006 года
shaelf
2.7K / / 04.05.2005
Существуют тысяча и одна статья про ЧПУ, выбирай. По поводу расширения, то это эллементарно делается через .htaccess. Просто прописываешь там
 
Код:
AddType application/x-httpd-php .php .phtml .html
и всё.
8
10 июня 2006 года
mfender
3.5K / / 15.06.2005
Прочитал... Через минуту прочитал ещё раз... Подумал... Пошёл покурил... Прочитал ещё раз... Решил пообедать... Но аппетит испортился... Пришлось ещё раз перечитать...
И вот опять сижу, уставившись в монитор, и никак в голове не укладывается: какая связь между php, html и обработкой 404? Может действительно пообедать? Видимость статичного сайта создаётся, IMHO, менее изощрённым способом.

Ну да ладно... Разъясните, что это за хитрость такая: редирект с помощью ошибки?

У меня в .htaccess на http://rio.kbtour.ru написано:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.* /index.php

В корне сервера всего один файл index.php в котором всего одна строчка, инициализирующая работу. Адреса, которые передаёт браузер, отдалённо напоминают то, что можно увидеть в ftp. И ни на одной странице нет query_string.
Если я правильно понял - это и есть видимость "ХТМЛьного" сайта?
314
10 июня 2006 года
fanto
374 / / 15.02.2003
Поподробней про htaccess please...
И что таким(\похожим) способом я могу получить
/test/qwerty
вместо
index.php?var1=1&var2=2....

Если да то как?
8
10 июня 2006 года
mfender
3.5K / / 15.06.2005
Про это достаточно много в интернете информации. У любого провайдера подробно расписано, как пользоваться mod_rewrite'ом.

К примеру, выбираем адрес покрасивее, например, осмысленное spisok_kartinok.htm, который будет выводить скрипт pictures_list.php. Предполагается, что для выбора из БД нам нужно знать два параметра: какой-нибудь раздел (part), и... ну, пусть мы передаём страницу, для постраничного вывода (page_num).

Таким образом, мы имеем входящий адрес pictures_list.php?part=3&page_num=9. Из этого мы хотим получить ссылку в браузере, вида spisok_kartinok3_9.htm

Пишем в .htaccess, в разделе RewriteBase (разумеется, RewriteEngine должен быть приведён в состояние On):
RewriteRule ^(.*)spisok_kartinok([0-9]+)_([0-9]+).htm$ $1pictures_list.php?part=$2&page_num=$3

Всё очень просто. Это - регулярные выражения.
314
13 июня 2006 года
fanto
374 / / 15.02.2003
Как ни странно реврайтер помог -- все перенаправляю на индекс.рнр а там уже разбираюсь чего это человек от меня хочет...
352
13 июня 2006 года
skywalker
694 / / 10.02.2006
[QUOTE=fanto]Как ни странно реврайтер помог -- все перенаправляю на индекс.рнр а там уже разбираюсь чего это человек от меня хочет...[/QUOTE]
В каком виде перенаправляется ошибка на индекс и какой ответ выдает сервер? Поподробнее...
Мой совет, лучше, если пользователь увидет сообщение об ошибке (будет знать что нет такой страницы), а поисковый робот пришедший на несуществующую страницу получит ответ сервера 404, иначе поисковик просто "склеит" несуществующую страницу и главную страницу, и в поиске главную уже никогда не выдаст.
8
13 июня 2006 года
mfender
3.5K / / 15.06.2005
[quote=skywalker]В каком виде перенаправляется ошибка на индекс и какой ответ выдает сервер? Поподробнее...
Мой совет, лучше, если пользователь увидет сообщение об ошибке (будет знать что нет такой страницы), а поисковый робот пришедший на несуществующую страницу получит ответ сервера 404, иначе поисковик просто "склеит" несуществующую страницу и главную страницу, и в поиске главную уже никогда не выдаст.[/quote] Я так понял, что fanto сделал по моему первому совету:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.* /index.php

Там ошибки не при чём. Просто в дальнейшем (после index.php) можно на том же PHP написать свой rewrite'р и отправлять клиента куда нужно.
15
13 июня 2006 года
shaelf
2.7K / / 04.05.2005
Я в своё время тоже об нём думал. Но потом обчитавшись, что он сильно грузит сервак, решил это не делать. Написал маленький скрипт, и он мне заменяет этот самый реврайт + делает "хлебные крошки" :)
314
13 июня 2006 года
fanto
374 / / 15.02.2003
to mfender: Еще раз спасибо за совет. Твой вариант работает на ура... Шеф доволен, но премии я все равно не увижу :)
Хотя я так и не понял в чем же была проблема сначала:

Код:
<?
header("http/1.1 200 Ok");
$url=$_SERVER['REDIRECT_URL'];
switch ($url)
{
case "/about" : $page=1;$unter=main;break;
case "/about/main" : $page=1;$unter=main;break;
 
\\ и много-много еще
 
case "/hardware" : $page=3;$unter=comp_sys;break;
case "/software" : $page=4;$unter=lic_po;break;
 
 
 
default : $page=1;$unter=about;break;
 
}
{include 'index.php';}
?>


Ну и в htaccess прописал этот файл как обработчик 404 ошибки.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог