UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: akhmet от 08 Декабря 2011, 10:30:19

Название: Настройка URL
Отправлено: akhmet от 08 Декабря 2011, 10:30:19
Добрый день.

Есть в UMI где-нибудь, помимо htaccess, проверка строки запроса?

Чтобы например при обращении  на http://mysite.ru/parts/123 (страница НЕ существует в структуре) обращалось на http://mysite.ru/parts (страница существует в структуре) но без редиректа.
Т.е. хочу настроить обработку динамичсеких страниц.

В htaccess доавлена строка RewriteRule ^parts/(.*)$ /parts/$1 [L]
Не помогает. Перекидывает на "страница не найдена",
Я так понимаю где внутри идет проверка на предмет существования страницы.

Название: Re:Настройка URL
Отправлено: admin от 08 Декабря 2011, 16:02:49
да, так и есть htaccess перенаправляет все страницы в index.php который уже принимает строчку как параметр и работает с таблицей страниц, как такового инструмента кастомизирования вашего значения в адресной строке во что-то красивое нет (особенно остро этот вопрос стоит при использовании большого кол-ва фильтров и попытку создать для страницы под каждый вариант фильтра). Владимир, вроде бы, как то рассказывал что экспериментировал с htacces в umi, но я лично такое не практиковал.
Название: Re:Настройка URL
Отправлено: Vladimir от 08 Декабря 2011, 17:56:36
Навскидку должно помочть что-то вроде RewriteRule ^(.+/parts)/(\d+)(/?)$ /$1/ [R=301,QSA,L] заданное ВЫШЕ всех правил ЮМИ
Название: Re:Настройка URL
Отправлено: akhmet от 12 Декабря 2011, 13:31:18
Спасибо за ответы.
Но c htaccess ничего не получилось. В любом случае строка запроса проверяется через index и выкидывает на "страница не найдена"

Вот ответ службы поддержки:

Мой вопрос: Меня как раз интересуют динамические урлы.
Чтобы вместо  http://mysite.ru/parts?cat=123  писать  http://mysite.ru/parts/123
Вместо 123 может быть любая, т.е. это ид чего либо (в моем случае это ид категории).
Страница "parts" в структуре существует. А "parts/<id>" нет.
Как сделать такое? Может в коде, где проверяется наличие страницы по таблице, поставить какое то исключение?
А просто редиректа на parts мне не нужно.

Ответ: "Нет, к сожалению, в функционале системы UMI.CMS нет такой возможности, редирект обязательно должен быть на реально существующую страницу."

Либо через таблицу cms3.redirects оформлять редиректы, как здесь:
http://wiki.umisoft.ru/Redirect_%D0%B2_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B5,_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%81%D0%B0%D0%B9%D1%82%D0%B0_%D0%BD%D0%B0_umi.cms,_%D1%87.2
Название: Re:Настройка URL
Отправлено: admin от 12 Декабря 2011, 13:52:15
надо будет кстати попробовать через эту таблицу), но чую что придеться index.php редактировать
Название: Re:Настройка URL
Отправлено: akhmet от 12 Декабря 2011, 13:54:35
надо будет кстати попробовать через эту таблицу), но чую что придеться index.php редактировать

да, только так я поняла. Служба поддержки я так понимаю не очень то хочет говорить где что править.
Название: Re:Настройка URL
Отправлено: Vladimir от 12 Декабря 2011, 17:29:15
Все очень даже работает, просто вы сначала не так формулировали вопрос. вы не говорили, что надо url/123 превратить в url/?param=123

RewriteRule ^(url)/(\d+)(/?)$ /$1/?param=$2&%{QUERY_STRING} [L]

естественно, надо переписать то, что я обозвал как url под ваш конкретный адрес с учетом вложенности

дальше в своем кастомном макросе получаете значение через getRequest('param');

Хотя, конечно, это все костыли, потому что приходится привязываться к конкрентным адресам в htaccess, что не есть хорошо.
но как частный случай, для одной директории - сойдет
Название: Re:Настройка URL
Отправлено: Vladimir от 12 Декабря 2011, 17:33:47
вот даже потестил на заброшенном сайте
___http://realnostinfo.ru/contacts1/175/
В теле страницы выводится последний параметр

Только не тяните с просмотром - там через несколько дней закончится срок оплаты хостинга
Название: Re:Настройка URL
Отправлено: akhmet от 13 Декабря 2011, 10:18:29
Vladimir, спасибо большое! Действительно все сработывает