HRU,ЧПУ, mod_rewrite, красивые ссылки

Челябинская область

Автор:Dmitriy Altuhov

HRU,ЧПУ, mod_rewrite, красивые ссылки

Правда красивы и удобны ссылки

http://it74.net/products
http://www.ets-miass.ru/catalog/elkotlko lb/puevps
http://ivkor.ru/catalog/olimp

?

Как они делаются, как обрабатываются?
рассмотрим всё на примере сайта еts-miass.ru

1) файл .htaccess
за работу «красивых ссылок» отвечает mod_rewrite (модуль WEB-сервера Apache HTTPd)
в файле мы видим:

RewriteEngine on
RewriteRule ^map$            map.php         [L,QSA,NC]
RewriteRule ^([a-z0-9]+)$            index.php?page=$1         [L,QSA,NC]
RewriteRule ^.htaccess$ — [F]
RewriteRule ^sqconnt.php$ — [F]

Рассмотрим попорядку:

RewriteEngine on = включает работу модуля mod_rewrite (конечно если он установлен и подключен в конфигурационном файле httpd.conf)

RewriteRule ^map$            map.php         [L,QSA,NC] = собственно пошли сами правила для работы модуля (по которым осуществляется подмена красивого адреса на рабочий). В этом правиле запрос http://ets-miass.ru/map преобразуется налету для сервера в http://ets-miass.ru/map.php

RewriteRule ^([a-z0-9]+)$            index.php?page=$1         [L,QSA,NC] = тут интереснее… Запрос http://ets-miass.ru/PARAMETRпреобразуется в http://ets-miass.ru/index.php?page=PARAM ETR

GhfdbkRewriteRule ^.htaccess$ — [F] = правило запрещает доступ к файлу .htaccess
RewriteRule ^sqconnt.php$ — [F] = правило запрещает доступ к файлу sqconnt.php

Вроде с .htaccess разобрались, НО!
Есть небольшая рекомендация. Называется она (строчка в файле .htaccess)

Options +MultiViews

Это что-то вроде аналога RewriteEngine только для статических страниц.
Например.. у нас есть файлы product.html, services.html, about.php.html
вместо ссылок » http://it74.net/product.html«, при включенной опции Options +MultiViews, мы сможем использовать сокращённые и красивые » http://it74.net/product»

Поэтому настоятельно рекомендую вместо RewriteEngine использовать Options +MultiViews, если на Вашем сайте не используется связка PHP+MySQL. (ускоряет обработку скриптов и уменьшает нагрузку на сервер)

Ещё одна рекомендация — никогда не делайте обработку «красивых ссылок» через обработку ошибки 404 (как раньше многие любили)…в результате вы получите забитый лог сервера Apache ошибками и поисковики не будут индексировать Ваши страницы!

Вернёмся к RewriteEngine. С файлом .htaccess разобрались

2) Теперь нам нужно сделать обработку эти красивых ссылок нашими скриптами.
например запрошен URL » http://www.ets-miass.ru/catalog«..
сначала mod_rewrite преобразует запрос в » http://ets-miass.ru/index.php?page=catal og»
Теперь становится всё понятно..далее..как и раньше разбираем в PHP переменную $_GET

$pagen = htmlspecialchars(@$_GET[‘page’], ENT_QUOTES);

В итоге мы получаем название запрошенной страницы в переменной $pagen.

echo $pagen
// результат будет = catalog

Удачи в сайтостроении!

Comments Are Closed!!!