вопрос по mod_rewrite

j.KS
На сайте с 03.11.2006
Offline
107
547

Честно юзал поиск, много чего нашел, но цели не достиг...

Ранее дела с модрерайтом не имел...

Вид адресов:

site.ru/index.php?qa=dir1&qb=dir2&qc=dir3

Надо преобразовать в:

site.ru/dir1/dir2/dir3/

При этом dir3 и dir2 могут отсутствовать.

Сейчас имею в htaccess такой код:


Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([A-Za-z0-9\-]+)/([A-Za-z0-9\-]+)/([A-Za-z0-9\-]+)$/index.php?qa=$1&qb=$2&qc=$3 [L]

страничка site.ru/?qa=ob-teplo&qb=1&qc=3 выводится в таком виде, никаких изменений.

страничка site.ru/ob-teplo/1/3/ не выводится.

А надо наорборот :)

Цель - при переносе сайта на новый движок, оставить внешнюю структуру прежней, т.к. производилась раскрутка внутренних.

Спасибо тем кто отзовется.

Куплю сайт(ы) с доходом (1-3)k$/мес. с контекста (/ru/forum/582890)
mfl
На сайте с 16.10.2006
Offline
134
mfl
#1

RewriteEngine On 

RewriteBase /
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?qa=$1&qb=$2&qc=$3 [QSA]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?qa=$1&qb=$2 [QSA]
RewriteRule ^([^/]+)/?$ index.php?qa=$1 [QSA]
A2
На сайте с 03.01.2008
Offline
80
#2

Сам недавно начал использовать. Тоже долго искал в итоге сам методом проб и ошибок разобрался

RewriteEngine on

RewriteBase /

RewriteRule ^([^\/]+)\/([0-9]+)\/([0-9]+)\/?$ index.php?qa=$1&qb=$2&qc=$3 [L]

RewriteRule ^([^\/]+)\/([0-9]+)\/?$ index.php?qa=$1&qb=$2 [L]

RewriteRule ^([^\/]+)\/?$ index.php?qa=$1 [L]

Для id лучше использовать [0-9]+ чтоб дополнительно защищаться от инжекций

Защита от хотлинков. (/ru/forum/488704) Оптимизация скорости загрузки страниц сайта (/ru/forum/435863). ICQ:345100870
j.KS
На сайте с 03.11.2006
Offline
107
#3

Спасибло отозвавшимся, помог вариант от mfl. Второй способ не работает.

Только слетели пути картинок и ксс. Все ссылки относительные: '/images/blablabla...'

Что странно, такие же ссылки на урлы срабатывают без проблем, а картинки слетели.

Кто подскажет что делать?

Shtogrin
На сайте с 02.11.2006
Offline
95
#4
Все ссылки относительные: '/images/blablabla...'

Это абсолютный путь.

Делайте все картинки и ссылки с абсолютными путями или попробуйте использовать <base> http://www.w3schools.com/tags/tag_base.asp.

www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий