Консультация онлайн # 161217

Раздел: PHP / Perl / Python
Автор вопроса: Прим Палвер
Дата: 23.02.2009, 20:10 Консультация неактивна
Поступило ответов: 1
Вечер добрый!
На многих сайтах вижу имитацию папок, например: http://site.od.ua/param/2/id/5
Как я понимаю, это недалеко от http://site.od.ua/param=2... Точно не уверен.
Как это делается? Выглядит красивее.

Ответ # 1, Cimus (Посетитель)

Здравствуйте, Прим Палвер!
ЧПУ (англ. Friendly URL) — веб-адреса, удобные для восприятия человеком (а также систем и методов построения таких адресов). Является аббревиатурой от словосочетания «Человеку Понятный Урл» («урл» — жаргонное для URL).

Концепция ЧПУ предполагает максимально лаконичные и интуитивно понятные адреса, которые показывают естественную для человека логическую структуру данных на сервере, а не её программный интерфейс с модулями и параметрами. Структуру обычно представляют в виде иерархии как в обычной файловой системе, к которой привык пользователь.

Реализация
Для веб-сервера Apache существует мощный модуль mod_rewrite, который включается в стандартный дистрибутив. Он обладает массой возможностей интерпретации URL перед обработкой необходимым модулем.

В большинстве случае в файле .htaccess указывается с помощью регулярного выражения формат URL, который должен быть обработан как другой URL. Например:
Код
RewriteEngine on
RewriteRule article/(\d+)/? article.php?id=$1 [L]

Первая строчка включает mod_rewrite. Во второй указывается, что веб-сервер при запросе URL вида /article/450/ должен обратиться к /article.php?id=450 .

Обработка URL в собственном скрипте
Разработчик может вручную обработать URL и на основе него вызвать какую-то функцию. Для этого, чаще всего, нужно с помощью mod_rewrite направить все запросы одному скрипту для обработки. Для этого нужно добавить в файл .htaccess следующее содержимое:
Код
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]

Скрипт index.php уже будет брать URL из переменной $_SERVER['REQUEST_URI'] и на основе каких-то настроек запускать необходимый код.

Приложение:


Cimus

Посетитель
23.02.2009, 20:27
Нет оценки ответа

Мини-форум консультации # 161217

Н.В.

177521

= общий =    23.02.2009, 20:18
Это делается с помощью Apache Mod_rewrite
Удачи!
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.