Я уже разбирал в своё время, как сделать ЧПУ-ссылки . Но в некоторых более простых случаях ЧПУ-ссылки можно сделать через mod_rewrite . Вот об этом я расскажу в этом материале, а также покажу пример реализации подобного механизма.

ЧПУ на mod_rewrite

Я уже разбирал в своё время, как сделать ЧПУ-ссылки. Но в некоторых более простых случаях ЧПУ-ссылки можно сделать через mod_rewrite. Вот об этом я расскажу в этом материале, а также покажу пример реализации подобного механизма.

Предположим, что Ваши ссылки имеют следующий вид:

http://mysite.ru/?view=article&id=1
http://mysite.ru/?view=article&id=2
http://mysite.ru/?view=article&id=3

А Вы хотите сделать их вот такими:

http://mysite.ru/article/1
http://mysite.ru/article/2
http://mysite.ru/article/3

Очевидно, что второй вариант проще, короче и, самое главное, будет лучше индексироваться поисковыми системами. Теперь разберём, как это можно сделать через mod_rewrite:

RewriteEngine on
RewriteRule ^.*article/(.*)$ index.php?view=article&id=$1

Здесь мы написали правило по которому, если запрашиваемый URL удовлетворяет регулярному выражению "^.*article/(.*)$" (например, такой URL пройдёт "http://mysite.ru/article/2"), то сделать "перенаправление" вот на этот адрес "index.php?view=article&id=$1", где $1 - содержимое первой (в нашем примере и единственной) группирующей скобки в регулярном выражении.

Обратите внимание, что "перенаправление" я указал в кавычках, поскольку для пользователя никакого перенаправления не происходит. У него URL в адресной строке никак не меняется, а остаётся прежним. А вот обращение происходит не к директории article и поддиректории 2, а к файлу index.php с соответствующим GET-запросом. Поэтому несмотря на отсутствие в URL из адресной строки браузера всяких GET-параметров, если выполнить в index.php следующий код:

<?php
  print_r($_GET);
?>

То Вы увидите вот это: "Array ( [view] => article [id] => 1 )". А дальше уже, думаю, понятно, что делать с этими входными данными.

В данной статье я показал, как делаются ЧПУ-ссылки на mod_rewrite. И обратите внимание, что это лишь обработка входящего URL. И ещё надо, чтобы на страницах все ссылки были именно ЧПУ. И чтобы это сделать, их тоже нужно заменять, и здесь без PHP никак не обойтись. Если вдруг Вы не знаете, как заменять обычные ссылки на ЧПУ, то настоятельно полезно изучить этот курс.