http://it74.net/products/
http://www.ets-miass.ru/catalog/elkotlkolb/puevps/
http://ivkor.ru/catalog/olimp/
Как реализовать на WEB-сервере такие красивые и удобные пути (URL)?
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
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
Теперь становится всё понятно..далее..как и раньше разбираем в PHP переменную $_GET
$pagen = htmlspecialchars(@$_GET[‘page’], ENT_QUOTES);
В итоге мы получаем название запрошенной страницы в переменной $pagen.
echo $pagen
// результат будет = catalog
Удачи в сайтостроении!
Об авторе