Почему важны URL?
Статические URL и динамические URL
Статические URL
Динамические URL
URL-адреса и CTR
URL-адреса и дублированный контент
URL-адреса в реальном мире
Пример 1: динамические URL-адреса
Пример 2: числовая подмена в URL-адресах
Пример 3: URL-адреса со вставленными ключевыми словами
Поддержка согласованности URL-адресов
Подмена URL
Инсталляция mod_rewrite
Тестирование mod_rewrite
Введение в регулярные выражения

Подмена URL и PHP

Как показано на рис. 3.3, PHP-сценарий вызывается после подмены исходного URL-адреса. Этим объясняется, почему $_GET [product_id] читает значение product__id из подмененной версии URL. Это удобно, т.к. сценарий работает независимо от того, вызывается ли product .php напрямую или же в первоначальном запросе был другой URL, который
был подменен для product. php.
Предопределенная переменная $_GET, как и почти все другие предопределенные переменные РНР, работает с подмененным URL-адресом. Предопределенные переменные описаны на страницах документации по РНР: http://www.php.net/reserved.
variables и http://www.php.net/variables.predefined.
Однако PHP также позволяет выбирать и URL первоначального запроса с помощью выражения $_SERVER[REQUEST_URI], которое возвращает путь (без доменного имени) исходного запроса. Это удобно тогда, когда необходимо узнать первоначальный запрос, посланный клиентом.
Наиболее распространенные серверные переменные описаны в табл. 3.1.
Таблица 3.1. Наиболее распространенные серверные переменные

Серверная переменная Описание
SERVER['REQUEST_URI'] Возвращает URI (Uniform Resource Identifier — унифицированный индикатор ресурса) исходного запроса. Практически возвращает путь исходного запроса без доменного имени.
GET['имя параметра'] Возвращает значение параметра строки запроса имя параметра из подмененного URL.
$_ POST['имя параметра'] Возвращает значение POST-параметра имя_параметра запроса.
$_ COOKIES[' имя_соок1е'] Возвращает значение cookie-переменной имя_соок1е.
$_ SESSION!'имя переменной'] Возвращает значение переменной сеанса имя_переменной.
$_ SERVER['QOERY_STRING'] Возвращает строку запроса из подмененного URL.
$_ SERVER[1PHP_SELF'] Возвращает имя файла выполняющегося сценария.

Вторая строка задает правило подмены с помощью команды RewriteRule модуля mod_rewrite. В ней указано преобразование строки my-super-product.html в product.php?product_id=123. Строка перед строкой RewriteRule — комментарий;
комментарии обозначаются с помощью символа диеза (#) в начале строки и игнорируются при грамматическом разборе:
# Преобразование my-super.product.html в /product.php?product_id=123
RewriteRule Amy-super-product\.html$ /product.php?product_id=123
Официальную документацию no команде RewriteRule можно прочитать no адресу
http://www. apacheref.com/ref/mQd_rewrite/RewriteRule.html.
В своей основной форме RewriteRule принимает два параметра. Первый параметр описывает исходный URL, который нужно подменить, а второй — указывает, на что его следует подменить. Образец,/Описывающий исходный URL, заключен в символы
А и $, что означает, что в строке нет ничего до и после сравниваемого текста (об этом будет сказано в последующих разделах), а ее содержимое записано с помощью регулярных выражений, о которых вы узнаете чуть ниже.
Если вы удивлены, что расширение .html записано в правиле подмены, в виде \ .html, то
мы сейчас это объясним. В регулярных выражениях — языке, используемом для описания исходного
URL, который требуется подменить— точка имеет специальное значение. Если нужно, чтобы точка обозначала действительно точку, необходимо литерализовать ее с помощью символа обратного слэша. Как вы узнаете позже, так всегда делается в регулярных выражениях: когда специальные символы необходимо записать в литеральном смысле, их необходимо литерализовать с помощью символа обратного слэша (который и сам является
специальным символом — поэтому если нужно использовать обратный слэш, его следует записать
как \\).

Подмена числовых URL с двумя параметрами
Подмена URL с ключевыми словами
Создание генератора ссылок
Разбиение на страницы и подмена URL
Подмена изображений и потоковых носителей
Проблемы, которые подмена не может решить
Последнее предостережение
Резюме
Используются технологии uCoz