Игорь А.
14 сообщений
#17 лет назад
Помогите настроить ЧПУ(ЧеловекоПростойУрл...так вроде)в жизни это Мод_реврайт....
Спасибо...
Желательно по порядку.=)
Александр К.
36 сообщений
#17 лет назад
ЧеловекоПонятныйУрл
В инете целая куча статей, и на форумах (phpclub.ru, sql.ru) это обсуждалось не раз и не два...
Максим Антонюк
21 сообщение
#17 лет назад
Дмитрий П.
441 сообщение
#17 лет назад
1. С помощью связки Apache+mod_rewrite перекидываешь все запросы на твой основной скрипт (это получается шаблон Front Controller). Я это делаю, добавляя в .htaccess вот этот кусок:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(+)$ /$1/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/(.+)()$ /$1/$2$3/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php
</IfModule>


Этот пример обрабатывает URL'ы вида /aaa/bbb/ccc/sssss/, на URL'ах типа /aaaaa/bbb/ccc/sss.html может запнуться, не проверял и не хочу

2. В index.php смотришь переменную $_SERVER (это если работаешь с PHP) - это будет URL, который ввел посетитель, например, /papers/transducers/vw/.

3. Дальше в соответствии с логикой твоей системы парсишь URL, определяешь, что нужно отдать пользователю и отдаешь

Какая может быть логика разбора:
1. Искать URL в базе данных. Найден - отдавать контент, не найден - посылать 404
2. Сравнивать URL с шаблоном, лежашем в конфиге (например, с регэкспом типа ^/shop/perfume/(designer)/(?: (\d+)/){0,2}?$). Если совпадение есть - пытаться выдрать контент из базы и отдать пользователю. Нет контента или регеэксп не дал совпадений - 404

Можно придумать еще кучу вариантов, но эти два наиболее простые и удобные (в общем случае).

Надеюсь, идею донес в общих чертах
Василий Бруханда
1 сообщение
#17 лет назад
Цитата ("sukebe"):

Надеюсь, идею донес в общих чертах


Мда, толково описал, спасибо, я кучу всего прочитал пока догнал, может ты начинай статьи писать типа кратенькие
Александр М.
16 сообщений
#17 лет назад
Написал как-то статейку:
Игорь А.
14 сообщений
#17 лет назад
Цитата ("SamDark"):
Написал как-то статейку: ]http://rmc.net.ru/article/programming/goodurl/

Спасибо.Просто и со вкусом.