Настройка "красивого" роутинга
День добрый, как сделать из такого url http://site.ru/?section=news&act=statya-1
вот такой http://site.ru/news/statya-1
.
День добрый, как сделать из такого url http://site.ru/?section=news&act=statya-1
вот такой http://site.ru/news/statya-1
.
Например вот так:
RewriteRule ^/?([^/]+)/([^/]+)/([^/]+)/? /?section=$1&act=$2&dates=$3
Здесь я для примера добавил ещё третий параметр, dates
.
В первой части описывается регулярное выражение, которое разбирает исходный URL. В моём примере это трёхкомпонентный путь, каждый элемент которого отделён с помощью дроби (slash, /) от последующего. Внутри части пути символ дроби встретиться не может [^/]
, каждый элемент должен содержать минимум один символ (поэтому +
).
Во второй части выражения используются переменные вида $N, где N указывает на номер выражения заключенного в скобках (backreference).
Подробности можно узнать здесь:
Вообще весь процесс называется на английском url beautification и поиск по этому термину может дать много интересных примеров по теме.