UMIhelp
Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: akhmet от 08 Декабря 2011, 10:30:19
-
Добрый день.
Есть в UMI где-нибудь, помимо htaccess, проверка строки запроса?
Чтобы например при обращении на http://mysite.ru/parts/123 (страница НЕ существует в структуре) обращалось на http://mysite.ru/parts (страница существует в структуре) но без редиректа.
Т.е. хочу настроить обработку динамичсеких страниц.
В htaccess доавлена строка RewriteRule ^parts/(.*)$ /parts/$1 [L]
Не помогает. Перекидывает на "страница не найдена",
Я так понимаю где внутри идет проверка на предмет существования страницы.
-
да, так и есть htaccess перенаправляет все страницы в index.php который уже принимает строчку как параметр и работает с таблицей страниц, как такового инструмента кастомизирования вашего значения в адресной строке во что-то красивое нет (особенно остро этот вопрос стоит при использовании большого кол-ва фильтров и попытку создать для страницы под каждый вариант фильтра). Владимир, вроде бы, как то рассказывал что экспериментировал с htacces в umi, но я лично такое не практиковал.
-
Навскидку должно помочть что-то вроде RewriteRule ^(.+/parts)/(\d+)(/?)$ /$1/ [R=301,QSA,L] заданное ВЫШЕ всех правил ЮМИ
-
Спасибо за ответы.
Но 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
-
надо будет кстати попробовать через эту таблицу), но чую что придеться index.php редактировать
-
надо будет кстати попробовать через эту таблицу), но чую что придеться index.php редактировать
да, только так я поняла. Служба поддержки я так понимаю не очень то хочет говорить где что править.
-
Все очень даже работает, просто вы сначала не так формулировали вопрос. вы не говорили, что надо url/123 превратить в url/?param=123
RewriteRule ^(url)/(\d+)(/?)$ /$1/?param=$2&%{QUERY_STRING} [L]
естественно, надо переписать то, что я обозвал как url под ваш конкретный адрес с учетом вложенности
дальше в своем кастомном макросе получаете значение через getRequest('param');
Хотя, конечно, это все костыли, потому что приходится привязываться к конкрентным адресам в htaccess, что не есть хорошо.
но как частный случай, для одной директории - сойдет
-
вот даже потестил на заброшенном сайте
___http://realnostinfo.ru/contacts1/175/
В теле страницы выводится последний параметр
Только не тяните с просмотром - там через несколько дней закончится срок оплаты хостинга
-
Vladimir, спасибо большое! Действительно все сработывает