$418.52


$17.59


$30.38


FAQ по ЧПУ (человекопонятные URL)

ЧПУ — это термин, придуманный командой НовоКиберска, обозначает он «Человекопонятный УРЛ». Термин нигде широко не употреблялся, пока я не написал 5 сентября 2000 года заметку «ЧПУ и PHP». За эти три года термин довольно неплохо раскрутился. За эти годы очень многие ссылались на эту заметку, поэтому я взял на себя труд переписать ее, добавив еще несколько способов сделать ЧПУ и убрав всякий мусор. Итак…

В принципе, ничего нового и оригинального в идее понятного УРЛа нет. Про это писал и Лебедев, и другие товарищи. Вообще, мне всегда нравились УРЛы такого, например, вида: http://php.resourceindex.com/Complete_Scripts/Guestbooks/

Итак, как это сделать в домашних условиях?

Способ раз
Вообще, самая первая мысль — это создавать для каждой заметки поддиректорию с соответствующим именем и помещать в нее index.html, то есть сделать так, чтобы по адресу http://spectator.ru/technology/php/user_friendly_urls лежал бы реальный файл. Разумеется, так дело не пойдет.

Способ два
Думаем дальше. Раз страница не существует, то она выдает 404. Так что вторая идея — прописать в фале .htaccess страницу, которая будет выдаваться при ошибке 404, а уже эта страница будет смотреть на текущий УРЛ и выдавать нужный документ


То есть, в .htaccess пишем:

------------------------------------
ErrorDocument 404 / index . php3
ErrorDocument 401 / index . php3
------------------------------------

Пользователь набирает http://spectator.ru/technology/php/user_friendly_urls, такая страница не найдена, и загружается файл index.php3. Дальше — все просто. Переменная $REQUEST_URI дает нам адрес вызываемой страницы (в данном случае это будет /technology/php/user_friendly_urls), вывести на экран соответствующий документ — дело техники.

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

Итого: прописываем в .htaccess страницу, которая, собственно, за все отвечает (у меня это index.php3). В этой странице пишем php-скрипт, который работает с $REQUEST_URI, шлет заголовок «http/1.0 200 Ok» и отображает то, что надо.

Плюсы: Очень простой способ. Работает почти везде.

Минусы: При таком способе нельзя постить содержимое формы на несуществующие псевдоурлы. И если в Апаче ведется лог 404-ых ошибок, то он будет забит.

Способ три
Для этих (и не только) целей есть специальный модуль в Апаче, который называется mod_rewrite. Он позволяет «переписывывать урлы», то есть, преобразовывать их «на лету» по правилам, которые вы ему опишите.

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

Module mod_rewrite URL Rewriting Engine.

A Users Guide to URL Rewriting with the Apache Webserver.

Модуль Apache mod_rewrite.

Mod_rewrite для чайников.

Плюсы: Очень мощный способ.

Минусы: Может не хватить мозгов. На хостинге может быть не установлен этот модуль.

Способ четыре
Основан на директиве FilesMatch, которая в Апаче является core feature. Все просто. Пишем опять же в .htaccess

Action throw / index . php

ForceType throw
FilesMatch -->

ForceType application / x — httpd — php
FilesMatch -->

После этого все УРЛы, которые подпадают под условие «^([^.]+)$», (то есть все урлы, в которых не содержится точка) будут передаваться на index.php. Вы можете написать свое условие, разумеется.

Плюсы: Простой и удобный способ.

Минусы: Говорят, что для того, чтобы ForceType работал, php должен быть подключен к апачу в виде модуля. Если php вызывается, как обыкновенный CGI — ForceType работать не будет.

 

Интересное

Как правильно обращаться с...
Подключение компьютера. Итак, Вы привезли домой коробки, распаковали. (Не забудьте, что, если Вы купили компьютер зимой, и по дороге он немного замерз, следует подождать 3-4 часа, прежде чем его...
Подробнее...
Мужской стиль
Ни для кого не секрет, что одной из главных черт всех успешных деловых людей является умение хорошо выглядеть. На любых переговорах и встречах, деловой человек будет выглядеть впечатлительно....
Подробнее...
Угон и защита icq уинов
Если хочется 8-ми значный uin... Хотя нет. Пожалуй 7-ми значный... Или 6-ти ;-) Вообщем если не важен номер, а важно только количество знаков в номере то это самый реальный способ.Внизу есть...
Подробнее...
Комплексное продвижение...
В этой статье мы остановимся на положительных сторонах каждого отдельного этапа, а так же определим положительные и отрицательные стороны комплексного подхода при продвижении сайта, т.е....
Подробнее...
10 причин медленной работы...
Пользователи редко жалуются на работу новых ПК. Немудрено, ведь и система, и программы запускаются мгновенно. Однако со временем они начинают замечать, что система работает всё медленнее и с...
Подробнее...
Проблемы программы...
Illustrator — странная программа, она не похожа на другие продукты Adobe. Порой складывается впечатление, что ее выпускает не Adobe столько проблем она делает. С самой первой из них пользователь...
Подробнее...
ПО WWW БЕЗ СЛЕДОВ
Путешествуя по Интернету, мы не часто задумываемся о том, что оставляем следы своих посещений каждый раз, когда заходим на какой-либо сайт. Пожалуй, об этом и не стоило бы беспокоиться, если бы не...
Подробнее...
Загрузчик операционной системы
В этой области данных жесткого диска должен быть расположен небольшой код загрузчика, назначение которого состоит только в том, чтобы передать управление дальше. Этот код передает управление в...
Подробнее...
Что делать, если Windows...
Если Windows не может корректно завершить работу, в большинстве случаев это связано либо с системой управления электропитанием, либо с неправильно работающими драйверами. Могут существовать и...
Подробнее...
Продлеваем жизнь Windows XP
<img src=«http://i-faq.ru/uploads/posts/2007-09/1190884587_computer.jpg» align=«left» style=«border: none;» alt=«Продлеваем жизнь Windows XP» />Windows Vista можно назвать яркой и новой, но...
Подробнее...