8 прикладів використання модуля mod_rewrite (.htaccess)
1. Переробляємо формат "product.php?id=12" в "product-12.html"
Це звиайне перенаправлення, в якому розширення .php сховано з адресної стрічки браузера та динамічний УРЛ (зі знаком запитання "?") перетворений в статичний адрес.
RewriteEngine on RewriteRule ^product-([0-9]+)\.html$ product.php?id=$12. Переробляємо формат "product.php?id=12" в "product/ipod-nano/12.html"
Експерти SEO рекомендують завжди показувати головне ключове слово в УРЛ.
RewriteEngine on RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ product.php?id=$23. Перенаправлення адрес без 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]4. Забираємо www із УРЛ :)
Частіше можна зустріти сайти, які забирають www з УРЛів
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.yourdomain\.com$ [NC] RewriteRule ^(.*)$ http://yourdomain.com/$1 [L,R=301]5. Переробляємо "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=$16. Перенаправлення домену на новий піддомен чи папку
Припустимо Ви зробили редизайн сайту. Нова версія знаходиться в папці "new" в корені сайту. Тобто, новий сайт доступний за адресою "test.com/new". Потрібно, щоб при зверненні до "www.test.com" всі файли черпалися з "test.com/new". В цьому нам допоможу файлик .htaccess в корені нашого сайту.
RewriteEngine On RewriteCond %{HTTP_HOST} ^test\.com$ [OR] RewriteCond %{HTTP_HOST} ^www\.test\.com$ RewriteCond %{REQUEST_URI} !^/new/ RewriteRule (.*) /new/$17. І знову ж про чистоту URL
В .htaccess пишемо:
RewriteEngine On RewriteEngine On RewriteRule ^user/([a-z0-9]+)/$ /user.php?u=$1 [NC,L] RewriteRule ^analytics/$ /pages/analytics.php [NC,L] RewriteRule ^settings/$ /pages/settings.php [NC,L]8. Редирект
Якщо Ви перенесли сайт на новий домен, то на старому краще зробити редирект (перенаправлення користувачів зі старої адреси на нову).
RewriteEngine On RewriteEngine On RewriteRule ^(.*)$ http://www.yournewdomain.com/$1 [R=301,L]