помогите переписать правила

Sumberg

Постоялец
Регистрация
1 Авг 2006
Сообщения
66
Реакции
41
Есть cms'ка , в которой для родительских категорий в url вставляется буква "l",

например, род категория _http://open-classifieds.com/demo171/l/housing/

родительская категория с определенным районом

_http://open-classifieds.com/demo171/l/housing/cataluna/

Если убрать из url'а букву l, то родительская категория прекрасно отображается, при этом url с категорией+районом становится нерабочим.

Подскажите, что нужно изменить в htaccess, чтобы заработал последний линк без l, т.е. вида _http://open-classifieds.com/demo171/housing/cataluna/

Код .htaccess:



Заранее спасибо!
 
Если убрать из url'а букву l, то родительская категория прекрасно отображается, при этом url с категорией+районом становится нерабочим.
Поменяй пути в шаблоне который отвечает за вывод категорий
 
Уже убирал в функции, отвечающей за вывод:

Код:
if ($category!="") $url='/l/'.$category.'/'.$locationurl;
//if ($category!="") $url='/'.$category.'/'.$locationurl;
else $url= "/";

Насколько я понял, проблема не с генерацией ссылки родит. категории в менюшке,
а с отображением. В коде ничего такого больше не нашел, остался только htacccess. А вот на что поменять
RewriteRule ^(.+)/(.+)/(.+)/$ index.php?category=$2&location=$3 [L]

так до меня и не дошло (
 
при убирании в шаблоне "/l/"
необходимо будет заменить в .htaccess эту строку:
RewriteRule ^(.+)/(.+)/(.+)/$ index.php?category=$2&location=$3 [L]
на вот это:
RewriteRule ^(.+)/(.+)/$ index.php?category=$1&location=$2 [L]
ибо количество параметров и выдача меняются, да и сама ссылка другого вида получается.
 
RewriteRule ^(.+)/(.+)/$ index.php?category=$1&location=$2 [L]

так заработало то, что я просил, но перестали работать дочерние категории, например

раньше работало:
родительская категория:
site.ru/квартиры-комнаты
site.ru/l/квартиры-комнаты
site.ru/l/квартиры-комнаты/москва
site.ru/l/квартиры-комнаты/комсомольская

дочерние:
site.ru/квартиры-комнаты/однокомнатные
site.ru/квартиры-комнаты/однокомнатные/москва
site.ru/квартиры-комнаты/двухкомнатные
site.ru/квартиры-комнаты/двухкомнатные/комсомольская

раньше не работало:
site.ru/квартиры-комнаты/москва

сейчас работает:
site.ru/квартиры-комнаты/москва
site.ru/квартиры-комнаты/комсомольская

сейчас не работает:

site.ru/квартиры-комнаты/однокомнатные
site.ru/квартиры-комнаты/однокомнатные/москва
site.ru/квартиры-комнаты/двухкомнатные
site.ru/квартиры-комнаты/двухкомнатные/комсомольская

Т.е. все дочерние. Как бы объединить "раньше" и "сейчас", чтобы все заработало)
 
такое ощущение что там в выводе в шаблоне по другому реализованы переменные. можно кусок кода отвечающий за вывод дочерних? как получается что $location = однокомнатные/москва?
 
Весело в функции генерируется ссылка :) ничего не скажешь.
Возможые варианты развития:
-возвращаем обратно букву "l"
-меняем логику вывода url, изменяем правила в htaccess
-добавляем еще правила в htaccess
Скорее всего последний вариант предпочтительней -
перед правилом
RewriteRule ^(.+)/(.+)/$ index.php?category=$1&location=$2 [L]
добавить вот такое:
RewriteRule ^(.+)/(.+)/(.+)/$ index.php?category=$2&location=$3 [L]
то есть почти вернутся к оригиналу :)
 
Теперь

Не работает
site.ru/квартиры-комнаты/однокомнатные

Работает
site.ru/квартиры-комнаты/однокомнатные/москва

И rss почему то сломался(
 
Назад
Сверху