logo

   

Где мы?
» » » Как сделать ЧПУ с помощью .htaccess

Реклама

Друзья




Счетчик тИЦ и PR


Как сделать ЧПУ с помощью .htaccess

Категория: Веб мастеру / Статьи
Как сделать ЧПУ с помощью .htaccess

Если Вы умеете немного кодить и пишите свои скрипты, я вам расскажу как легко сделать ЧПУ (человеко понятный урл) с помощью .htaccess.
Что такое ЧПУ?
Например, у нас есть ссылка на страницу новостей с ID номером новости:
http://site.ru/news.php?id=4

Чтобы сделать такой URL красивее и удобнее, придумали ЧПУ, т.е. представление адреса, например в таком виде:
http://site.ru/news/4/

Скажете не очень наглядно? А вот такой пример:
http://site.ru/index.php?do=article&name=kak-sdelat-chpu

а с ЧПУ:
http://site.ru/articles/kak-sdelat-chpu/

Сделать это очень просто. Для веб-серверов Apache, есть встроенный модуль mod_rewrite. На большинстве хостингов он есть, так же как и на денвере.
Создаем файл .htaccess и кладем его в корень сайта. Первой строкой в этом файле мы пишем:
RewriteEngine on


Эта строка включает модуль mod_rewrite. Далее, мы пишем сами условия куда и зачем обращаться. Для нашего первого примера, код будет выглядеть так:

RewriteEngine onRewriteRule ^news/([0-9]+)/$ news.php?id=$1 [L]


Он будет перенаправлять с http://site.ru/news/4/ сюда http://site.ru/news.php?id=4
Все эти условия обычно указываются в htaccess с помощью регулярных выражений.


По второму примеру, код будет выглядеть так:
RewriteEngine on RewriteRule ^articles/([-a-zA-Z0-9_]+)/$ index.php?do=article&name=$1 [L]



Т.е. с адреса http://site.ru/articles/kak-sdelat-chpu/ нас перебросит на http://site.ru/index.php?do=article&name=kak-sdelat-chpu. Точнее пользователь не увидит реального адреса, а увидит только наш ЧПУ.
Как видите, все достаточно просто – создаем файл htaccess, пишем две строчки и готово! :)
По регулярным выражениям меня не спрашивайте, я не шарю :) Знаю только:
[0-9]+ – это только для цифр
[-a-zA-Z0-9_]+ – это для латинских больших, маленьких, дефиса и подчеркивания
Если во соображаете в регулярных выражениях, Вам будет очень легко написать любое правило. А кто не соображает, тут нужно смотреть примеры, которые я привел и пробовать. Я вчера попробовал, получилось! Не сразу конечно, перерыл кучу инфы, но разобрался.
Надеюсь понятно описал. Будут вопросы, спрашивайте.
UPD by Hugo: Если использовать конструкцию [QSA,L], тогда ЧПУ сможет принимать GET запросы. Т.е. если мы будем без [QSA,L] передавать GET-параметр (http://site.ru/articles/kak-sdelat-chpu/?Get_param=1) то выкинет 404 ошибку. Чтобы этого не происходило и мы смогли принимать GET запросы, нужно:
Вместо этого:
RewriteRule ^news/([0-9]+)/$ news.php?id=$1 [L]

Нужно написать [QSA,L] на конце:
RewriteRule ^news/([0-9]+)/$ news.php?id=$1 [QSA,L]

Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем. Так же напоминаем Вам что зарегистированый пользователь видит меньше рекламы и может подавать заявку на перезаливку непоследственно в новости!!Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.


   
 

Опрос сайта



Показать все опросы

Реклама



http://avtovykup-kiev.com/ как происходит процесс срочного автовыкупа. | Вечернее платье большого размера купить jakket.com.ua.

На правах рекламы