Почему важны URL?
Статические URL и динамические URL
Статические URL
Динамические URL
URL-адреса и CTR
URL-адреса и дублированный контент
URL-адреса в реальном мире
Пример 1: динамические URL-адреса
Пример 2: числовая подмена в URL-адресах
Пример 3: URL-адреса со вставленными ключевыми словами
Поддержка согласованности URL-адресов
Подмена URL
Инсталляция mod_rewrite
Тестирование mod_rewrite
Введение в регулярные выражения
Многим регулярные выражения нравятся, а многие другие их ненавидят. Многие думают, что с ними очень
трудно работать, а многие другие (ну, может быть, не настолько многие) считают, что это сплошное удовольствие.
Но в любом случае это один
из обязательных инструментов при подмене URL. Мы попытаемся представить здесь краткое введение в данную тему,
хотя по ней написаны целые книги. Имеются даже книги, посвященные mod_rewrite, в которых значительное место
отведено под регулярные
выражения. В качестве вводной информации можно порекомендовать замечательную страницу Википедии
(http://ru.wikipedia.org)
"Регулярные выражения".
Регулярное выражение (regular expression, иногда сокращается до regex) — это специальная
строка, описывающая текстовый шаблон (pattern). Регулярные выражения позволяют определять правила, которые
применимы к группам строк, выбирать данные из таких строк и преобразовывать эти строки — все это позволяет
выполнять очень
гибкие и сложные манипуляции с помощью лаконичных правил. Регулярные выражения присутствуют не только
в mod_rewrite и подмене URL. Наоборот, они существуют уже довольно долгое время и реализованы во многих
средствах и языках программирования,в том числе и в РНР.
Чтобы продемонстрировать их пользу на простом примере, предположим, что в вашем Web-сайте необходимо
выполнять подмену ссылок так, как описано в табл. 3.2.
Таблица 3.2. Требуемая подмена ссылок
Исходный URL Подмененный URL
Products/Pl.html product.php?product_id=l
Products/P2.html product.php?product_id=2
Products/P3.html product.php?product_id=3
Products/P4.html product.php?product_id=4
Если у вас 100 ООО продуктов, то без регулярных выражений это было бы серьезной проблемой, т.к. пришлось
бы написать ровно столько же правил — не больше и не меньше. Но вы же не хотите управлять файлом .htaccess
с помощью 100000 правил
Глядя на столбец "Исходный URL" в табл. 3.2, нетрудно заметить, что все его элементы
соответствуют одному и тому же шаблону. И, как уже предполагалось ранее, регулярные выражения помогут
справиться с этой задачей! Шаблоны удобны тем, что с помощью одного шаблона можно описать теоретически
бесконечное количество
возможных входных URL, и остается только написать правила подмены для каждого типа URL, имеющегося в Web-сайте.
В приведенном ниже упражнении используется регулярное выражение, соответствующее строкам Products/Pn.html,
и mod_rewrite для преобразования URL-адресов, соответствующих этому шаблону, в строки
product. php?productID=n. Это в точности реализует правила, описанные в табл. 3.2.
Подмена числовых URL с двумя параметрами
Подмена URL с ключевыми словами
Создание генератора ссылок
Разбиение на страницы и подмена URL
Подмена изображений и потоковых носителей
Проблемы, которые подмена не может решить
Последнее предостережение
Резюме