+7 (965) 339-38-11
 
Помимо профессионализма мы еще и люди интересные

Делаем ссылки красивыми (ЧПУ с помощью 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

Надеемся, данная статья поможет Вам сделать ссылки красивыми, короткими и легкими.