• Авторизация


Переменные для Apach'a 18-06-2005 21:00 к комментариям - к полной версии - понравилось!


Часто вижу, что на сайтах переменные передаются на сервер не после знака вопроса, а как имена папок (например: http://ru.wikipedia.org/Заглавная_страница/ или http://www.intuit.ru/department/hardware/mpbasics/).
Как этого достичь?
вверх^ к полной версии понравилось! в evernote
Комментарии (14):
VictorT 18-06-2005-21:06 удалить
поисчи в писковиках по фразе mod_rewrite


Kristinka_nobody 18-06-2005-21:13 удалить
Вот это вроде подходит: http://www.opennet.ru/docs/RUS/mod_rewrite/
Спасибо. Однако я, пожалуй, пока обойдусь без этого :)

LI 3.9.25
shakirov 20-06-2005-10:44 удалить
mod_rewrite, необходимо для ЧПУ. весьма удобно, кстати.
Dimonuch 21-06-2005-13:30 удалить
mod_rewrite или обработка 404ой ошибки. Первое сложнее, второе менее удобно и имет минусы.
на форуме phpclub.ru эта тема постоянно обсуждается.
shakirov 21-06-2005-13:50 удалить
через 404-ую? обробатывать по ней запрошеный урл и редиректить куда положено?

аба, мне такой изврат и в голову придти не мог :)))
Я так чую поисковики такие урлы не станут отрабатывать, получив 404 дальше просто не пойдут. яндекс 404-ые страницы не индексирует.
Dimonuch 21-06-2005-14:39 удалить
Исходное сообщение shakirov
через 404-ую? обробатывать по ней запрошеный урл и редиректить куда положено?

при возникновении 404ой ошибки получаь управление на скрипт, обрабатывать строку запроса и делать все, что тебе нужно. Редиректить - это по желанию.


аба, мне такой изврат и в голову придти не мог :)))
Я так чую поисковики такие урлы не станут отрабатывать, получив 404 дальше просто не пойдут. яндекс 404-ые страницы не индексирует.

а в чем изврат?
и кто просит тебя юзерам\поисковикам 404ую ошибку возвращать?

кстати никто не обещал что будет легко :) Например ПОСТ запросы такой штукой не пройдут. Так же туда будут попадать и действительно 404ые ошибки - это тоже нужно отлавливать.

Потому конечно mod_rewrite предпочтительнее. Т.к. он создан именно для этих целей.
shakirov 21-06-2005-14:47 удалить
Этож апач править надо чтоб заставить его не выдавать 404-ую в http response.. проще уж mod_rewrite включить :)
Dimonuch 21-06-2005-15:00 удалить
Исходное сообщение shakirov
Этож апач править надо чтоб заставить его не выдавать 404-ую в http response.. проще уж mod_rewrite включить :)


впринципе можно и Апач перекомпилить, если есть желание. Но мне как-то проще было бы сделать
header ("HTTP/1.0 200 Ok");
;)

Для тех кто в танке: http://detail.phpclub.net/article/2001-01-16
базовое описание на эту тему. Остальное - дело фантазии.

еще раз повторяюсь - mod_rewrite лучше и правильнее! но он не всегда есть\доступен\понятен. А вот в обработку 404ой сделает даже ребенок. .htaccess на многих хостингах дают ... и 404ую тоже много где дают обрабатывать.
Dimonuch 21-06-2005-15:03 удалить
кстати еще один вариант, по бедности. Адреса делать не вида www.youhost.ru/lala/baba а www.youhost.ru/?lala/baba
тоесть формально это уже не путь, а параметры. Внешне отличается мало - реализуется элементарно. Правда есть шанс, что какой-нибудь хитрый юзер забудет ? поставить :)
shakirov 21-06-2005-15:18 удалить
стоп!
header ("HTTP/1.0 200 Ok"); это на 404-ой странице.

а то что 404 выдастся юзеру в ответ на запрос site.name/sjsdisd/sassas маловажно?
Dimonuch 21-06-2005-15:43 удалить
хммм, я что-то потерял суть рассуждения.
может как-то конкретизируем вопросы?

Исходное сообщение shakirov
стоп!
header ("HTTP/1.0 200 Ok"); это на 404-ой странице.

ну да. В сприпте который вызывается на 404 и разбирает структуру запроса.


а то что 404 выдастся юзеру в ответ на запрос site.name/sjsdisd/sassas маловажно?


смотря что такое "site.name/sjsdisd/sassas" ...
если это и правда бред - тогда 404 должна быть выдана.
если это название реального файла - с чего бы 404 вылезать?
если это часть нашего "виртуального пути" (ради которого все и затевалось) - 404 выдавать естественно не надо. Вместо нее выдается 200 - как я выше и писал.
shakirov 21-06-2005-15:50 удалить
так, давай ещё раз :)

система такая, запрашиваем виртуальный наш путь site.name/sjsdisd/sassas его в реале нет, сервер отдаёт нашу "умную" 404-ую страницу которая обробатывает реферер и редиректит на реальный адрес (или отображает страницу с реального адреса). так?

щас эксперимент сделаю :)
Dimonuch 21-06-2005-16:14 удалить
хммм, ты бы ссылку почитал, что я выше постил.
Впринципе можно и реферер сделать, но тогда юзер увидит "паленый" адрес, что нам наверное не очень интересно (страшного не много, но ЗАЧЕМ?).

Имхо правильнее следующий вариант:
юзер хочет www.xxx.ru/news/123
никакого news/123 и в помине нет
Апач отдает управление на скрипт-обработчик 404ой ошибки, который у него (апача) для этого указан
Скрипт парсит УРЛку и проверяет, подходит ли указанная строка под его "правила". Например на наличие news и кода новости.
Если нет - скрипт радостно выдает 404 и сваливает.
Если да - здесь по желанию:
можно прямо в этом скрипте сделать получение новости (из БД, файла и т.д.) и ее вывод
а можно вызвать отдельный новостной скрипт, передав ему любым доступным способом код новости, чтобы он сам ее выводил.
через 404? а переменные для скипта принимать как будешь?


Комментарии (14): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Переменные для Apach'a | web_development - Веб-разработка | Лента друзей web_development / Полная версия Добавить в друзья Страницы: раньше»