Как сделать ЧПУ

  • Автор темы Автор темы gromitus
  • Дата начала Дата начала

gromitus

Новичок
Как сделать ЧПУ

http://spectator.ru/technology/php/user_friendly_urls
ЧПУ. Что такое, как сделать и ссылки на статтьи про тех тонкости.

http://sitemaker.ru/technologies/webserver/mod_rewrite
http://sitemaker.ru/technologies/webserver/mod_rewrite2
http://sitemaker.ru/technologies/webserver/mod_rewrite3
- а это ссылки на хороший, понятный урок по mod_rewrite.

(хотел опубликовать в тему соответствующую - но Фанат её закрыл.)
Возможно этот топик сотрут, но я просто долго ссылки искал на компе у себя, ну и в конце концов не пропадать же добру.

-~{}~ 04.10.04 19:59:

а вот ещё: способ с mod_rewrite отличается от других способов тем, что можно постить содержимое формы на левый адрес. Плюс на картинки (ну и любые файлы) можно тоже делать левые адреса.
 
gromitus, если бы ты был внимательнее, то не изобретал бы велосипед и обнаружил бы эти ссылки в избранном
 
Лично меня очень привлекает вариант с FilesMatch (способ 4 от Spectator'а). Он тоже позволяет постить форму на несуществующий адрес и навскидку менее ресурсоемок, чем mod_rewrite, а также не требует наличия последнего на хостинге :). Насколько я смог выяснить на данный момент, этот способ не работает в Apache 2, что для меня несущественно.

Однако два момента меня смущают: 1) мне почему-то не удалось найти явного указания на него в документации, и 2) судя по всему, он не очень распространен среди профессионалов. Почему? Какие еще есть "подводные камни" этого метода?
 
ForceType , FilesMatch

менее рапространён имхо из-за того что первоё что найдешь в инете на тему "перезаписи" урлов - кучу примеров про mod_rewrite

менее ресурсоёмок, потому что [могу врать]он не делает внутренний вызов ещё одного апача,как в случае с mod_rewrite[/могу врать]

подводных камней не нашёл, но пользуюсь(для верности наверное) mod_rewrite
 
Selen It - знаешь почему не работает? потому что у тебя наверное пхп стоит в качестве модуля апача. Помойму в 'jnv случае он не работает.

А, кстати вот ещё что интересное читал. То что ненадо всё перебрасывать на один пхпшник и им уже думать куда посылать клиента. Гораздо быстрее писать в htaccess (то бишь апач быстрее сообразит, чем пхпшка).
 
MiRacLe, спасибо за ссылки и весьма правдоподобное объяснение. Однако в этих главах мана я так и не нашел явного ответа на вопрос более чем просто авторитетного специалиста в следующем триде. Эксперимент отвечает - да. А документация молчит :confused: ...

gromitus, как раз у меня (Apache 1.3.31, PHP 4.3.8 как модуль, Win) все работает. Но вот вопрос, сохранится ли такое положение дел в следующих версиях?
 
SelenIT можно вопросы?
1) а что за "Вопрос" ?
2) о чём молчит документация? (могу предположить - она немая,потому и молчит - это же просто файлы на сервере - они не умеют говорить)

в документации чётко и ясно описано что делают вышеописанные директивы, документация apache как бы и не должна "кричать" о том,что эти директивы можно использовать в "недокуметированных" целях(как минимум по двум причинам - 1) она "немая" 2) - mod_php это не "подпроект" apache team

о том что "профи" его не "юзают" ты откуда узнал? тебе все "профи" отчитались?
 
MiRacLe, в том топике на XPoint'e, где я тоже влез с вопросом о ЧПУ на FilesMatch и его ограничениях, я был огорошен фразой
Вы хотите сказать, что это работает для несуществующих файлов и директорий?
Отсюда оба моих вывода...
 
да работает , пример тому - статья Смирнова и твой собственный опыт и это "кстати" совсем не противоречит примеру из документации в котором в явном виде для каталога "images" выставлялся content-type - img/gif

а "авторитетным специалистам" свойственно ошибаться, как впрочем и другим смертным - по не знанию,либо по "непониманию"
 
Работает. Не противоречит. Но и явно не вытекает из него и не подтверждается непосредственно. Все-таки, в примере речь идет о реальных файлах в реальном каталоге (насколько я понял).

А в Apache 2, опять же по авторитетным. но мной лично не проверенным данным - не работает.

Вот я и опасаюсь: если это недокументированная "фича", не исчезнет ли она в будущих версиях первой ветки Апача?
 
"фича" документирована (судя по ссылкам которые я привёл выше ;o) ), но имеено "опасаясь" я пользуюсь mod_rewrite

в первой ветке не исчезнет ибо "Base"... насчёт второй прогнозы несколько "туманны"

DocumentRoot - реальный каталог ?
 
Автор оригинала: SelenIT
2) судя по всему, он не очень распространен среди профессионалов. Почему? Какие еще есть "подводные камни" этого метода?
Да практически никаких. Разве что вот поисковики при индексации сайта будут получать ошибку 406, но это фигня, ведь правда?
 
Автор оригинала: Sad Spirit
поисковики при индексации сайта будут получать ошибку 406
А вот и нифига.
Проверяй - на www.php5.ru используется именно этот способ, никаких header("HTTP/1.1 200 OK") или подобного нет.

-~{}~ 04.10.04 23:57:

.htaccess
Код:
Action throw /index.php
<FilesMatch "^([^.]+)$">
ForceType throw
</FilesMatch>

index.php
//blablabla
list ($type, $file, $number) = explode("/", substr(strtok($_SERVER['REQUEST_URI'],'?'),1));
//blablabla
 
угу, вроде работает, 406 получить не удалось. видимо она вылезает, если использовать ForceType как-то по-другому, не как там.
 
тоже в свое время пришёл к выводу что мод-реврайт — просто модно. Большинство, когда говорит о ЧПУ имеет ввиду либо форсирование 404 либо мод_реврайт. Никаких объективных причин непопулярности FilesMatch я не знаю, объяснил бы кто, что ли. или все уже пересели на второй Апач?..
 
причем, что самое интересное!
Все богатство модуля мод реврайт используют... чтобы получить функциональность throw!
 
Сверху