Главная->Уроки по php->ЧПУ на mod_rewrite

ЧПУ на mod_rewrite

17 Фев в 00:56

ЧПУ на 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 никак не обойтись. Если вдруг Вы не знаете, как заменять обычные ссылки на ЧПУ, то настоятельно рекомендую пройти этот курс.