Делаем ссылки красивыми (ЧПУ с помощью apache mod rewrite)
Иногда, при разработке веб проектов, мы сталкиваемся с некрасивой структурой ссылок. Большие и длинные ссылки плохо запоминаются человеком, а также не всегда правильно и до конца индексируются поисковым роботом. Но в коде ссылок, как правило, передаются важные параметры, поэтому, если не удается сделать красивые ссылки при проектировании веб приложения, их можно сделать с помощью модуля mod rewrite веб сервера apache.
Кроме того, как известно, любой сайт доступен как минимум по двум адресам (без www и с www), поисковые роботы, как правило, считают это как два разных сайта и могут часть данных съесть для одного домена, а часть для другого, чтобы этого избежать, важно настроить редирект с сайта без www на сайт с www
Для этого в .htaccess файле можно прописать следующие параметры:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^site.ru
RewriteRule (.*) http://www.site.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://www.site.ru/ [R=301,L]
Где site.ru - Ваш сайт.
При разработке файлообменника www.putit.ru у нас возникла задача преобразовать ссылку вида http://www.putit.ru/file.php?id=MDY4MTk1Ng в более упрощенный вид: http://www.putit.ru/MDY4MTk1Ng
Мы сделали это с помощью следующих конструкций:
RewriteRule ^([^/\.]+)/?$ file.php?id=$1 [L]
Для наглядности приведем еще несколько примеров, преобразуем www.site.ru/product.php?id=123 в www.site.ru/product/123 следующим образом:
RewriteEngine on
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]
В другом примере преобразуем www.site.ru/script.php?product=123 в www.site.ru/cat/product/123/:
RewriteRule cat/(.*)/(.*)/$ /script.php?$1=$2
Надеемся, данная статья поможет Вам сделать ссылки красивыми, короткими и легкими.