5 примеров использования mod_rewrite

Данный урок более детально расскажет Вам про интересную функцию mod_rewrite с примерами.

Для тех кто не в курсе что такое mod_rewrite советую почитать про ЧПУ на Википедии. Именно этот модуль веб сервера делает ЧПУ возможным.

Ниже приведены 5 примеров использования данного модуля:

1) Переделываем "product.php?id=12" в "product-12.html"

Это простое перенаправление, в котором расширение .php спрятано из адресной строки браузера и динамический УРЛ (с знаком вопроса "?") преобразован в статический адрес
RewriteEngine on
      RewriteRule ^product-([0-9]+)\.html$ product.php?id=$1

2) Переделываем "product.php?id=12" в "product/ipod-nano/12.html"

Эксперты SEO всегда предлагают показывать главное ключевое слово в УРЛе. В пример Вы можете видеть название продукта в УРЛе.
RewriteEngine on
      RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ product.php?id=$2

3) Перенаправление адресов без www URL на адреса с www

Если Вы введете yahoo.com в браузере, Вас перенаправит на www.yahoo.com. Для проделывания такой же операции на Вашем сайте добавьте следующий код в файл .htaccess:
RewriteEngine On
      RewriteCond %{HTTP_HOST} ^optimaxwebsolutions\.com$
      RewriteRule (.*) http://www.optimaxwebsolutions.com/$1 [R=301,L]

УРЛ сайта, конечно же, поменяйте на свой. Для чего делать такой редирект? Чтобы избежать дублирования сайта поисковиками с www и без www.

4) Переделываем "yoursite.com/user.php?username=xyz" в "yoursite.com/xyz"

В файл .htaccess добавляем следующие строки:
RewriteEngine On
      RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1
      RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1

5) Перенаправление домена на новый поддомен или папку.

Допустим, Вы сделали редизайн на сайте и обновленный сайт находится в папке “new” в корне сайта. То есть новый сайт доступен по адресу “test.com/new”. Перенос файлов из одного места в другое может быть довольно трудоемким процесом, так что просто добавьте следующие строки в файл .htaccess и разместите его в корневой папке:
RewriteEngine On
      RewriteCond %{HTTP_HOST} ^test\.com$ [OR]
      RewriteCond %{HTTP_HOST} ^www\.test\.com$
      RewriteCond %{REQUEST_URI} !^/new/
      RewriteRule (.*)   /new/$1 

Теперь при обращение к "www.test.com" все файлы будут браться из “test.com/new”

Спасибо за внимание! Ждите новых статей по mod_rewrite.
Добавлено: 17 Августа 2013 03:08:03 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...