Для создания ЧПУ (человеку понятных URL) используется модуль Apache - "mod_rewrite". Он позволяет незаметно для пользователя переадресовывать с одного URL на другой.
Mod_rewrite по умолчанию идет в комплекте с сервером Apache, поэтому устанавливать его нет необходимости. Но он почти всегда выключен, поэтому его надо включить с помощью файла ".htaccess":
RewriteEngine on
Данной строкой мы включили mod_rewrite. Теперь нужно настроить перенаправление.
Допустим у нас имеется скрипт "news.php", которому в GET параметре должно передаваться ID категории и ID новости. Т.е.:
news.php?category=3&article=157
Нам нужно добиться следующего вида URL:
news/3/157.html
Для этого в конец файла ".htaccess" пишем строку:
RewriteRule ^news/([0-9]+)/([0-9]+).html$ news.php?category=$1&news=$2
Между символами "^" и "$" заключается регулярное выражение, которое описывает ЧПУ, в скобках идут передаваемые параметры. Далее идет страница, на которую будет перенаправляться наш ЧПУ. $1 значит первый параметр, который указан в скобках регулярного выражение, $2 - второй и т.д. Их может быть бесконечное множество.
Так-же перенаправление, может принимать разные параметры. Я знаю только, один, так как в других пока не нуждался. Этот параметр - [R], добавляется в конце условия перенаправления, т.е.:
RewriteRule ^news/([0-9]+)/([0-9]+).html$ news.php?category=$1&article=$2 [R]
Данный параметр предназначен для того, что бы человек видел, что происходит перенаправление. Т.е. в браузере будет заменяться адресная строка.