Убрать название компонента из Урл (URL) 1.10

+16
3.26K
Решил записать решение найденное на форуме в блоги, понял что в базовом комплекте 1.10.x кое-что
на эту тему появилось, в код лезть не нужно, правим файлы конфигов.

Убрать из url /shop — также по аналогии применяем к другим компонентам, но применить можно только к одному на одном сайте. Также это влечет за собой возврат УРЛ статей к виду /content/statya.html вместо statya.html, так как мы подменяем компонент с его именем в УРЛ заместо компонента Статьи (Контент) без имени в урл.

файл instantcms1.10.3.ru/core/classes/config.class.php

1) меняем это
  1. $cfg['com_without_name_in_url'] = 'content';
(может быть так)
  1. 'com_without_name_in_url'=>'content',
на это
  1. $cfg['com_without_name_in_url'] = 'shop';
2) файл instantcms1.10.3.ru/includes/config.inc.php

  1. $_CFG['seourl'] = 0;

Полезности от SJen, еще, нужно отредактировать все файлы шаблонов instantMaps, shop… и убрать оттуда maps/...shop/ url из ссылок.

Также идем в папку компонента и чистим вывод ссылок на страницы

frontend.php (убираем /shop/ из категорий и страниц товара)

model.php
1) меняем это
  1. $result['link'] = '/shop/'.$item['seolink'].'.html';
на это
  1. $result['link'] = $item['seolink'].'.html';
и так далее ищем ссылки seolink и правим убирая /shop/

psearch.php (правим вывод ссылок в поиске)

mod_inshop_tree.tpl (правим вывод ссылок в меню)
mod_inshop_cart.tpl ( правим вывод ссылок )
и всех остальных mod_inshop_...tpl и com_inshop_..tpl

Админка

items.tpl.php
0
Melon Melon 10 лет назад #
Что-то прочел, но не уловил как убрать, например, из InstantMaps /maps
+1
Bubble Gumoff Bubble Gumoff 10 лет назад #
тема на форуме Убрать из url MAPSУбрать названия категорий из url в InstantMaps
0
asa asa 10 лет назад #
А можно, наоборот? Сделать maps.example.com?
0
Bubble Gumoff Bubble Gumoff 10 лет назад #
не пробовал но думаю можно, надо только для роутера правильно это подать
0
deltas deltas 10 лет назад #
роутер тут не поможет. можно со .htaccess поиграть скорее, помню делал кому то для пользователей субдомены типа vasya.site.ru
+2
deltas deltas 10 лет назад #
Столько времени прошло и никто ошибки не видит... Никто еще не использовал? ))
1) меняем это Код PHP: $cfg['com_without_name_in_url'] = 'content'; на это Код PHP: $cfg['com_without_name_in_url'] = 'content';
???
или может все же на это $cfg['com_without_name_in_url'] = 'shop'; ? (если на примере шопа хотели показать)
За старания +
но все же надо следить за записями, а то пользователи начнут править файлы, и шоп не заработает и статьи не будут показываться...
+1
Bubble Gumoff Bubble Gumoff 10 лет назад #
Охохохо не ту строку удалил когда редактировал, спасибо, Deltas!
0
Art Freetmen Art Freetmen 10 лет назад #
Как убрать из url /blogs/ название компонента ? Убрать совсем.. Если невозможно, то как переименовать?
Так-же /catalog/.. как его убрать или хотя-бы переименовать ?
0
Art Freetmen Art Freetmen 10 лет назад #
Нашел.. Очень удобно.. Здесь
Правда, пришлось преобразовать все файлы в UTF-8(без BOM), что-бы убрать кракозябры..
InstantCMS v1.10.4 - полет нормальный..

P.S. Модуль не устанавливал, cms.php - не правил (судя по всему он уже поправлен в этой версии движка), установил плагин и создал страничку, все заработало!
0
Art Freetmen Art Freetmen 10 лет назад #
Хм.. У этого решения один есть недостаток.. Для каждого урл, придется делать свою страничку, т.е. шаблоны в плагине не реализованы.. sad
0
Art Freetmen Art Freetmen 10 лет назад #
Мда.. Все оказалось намного проще.. Оказывается у инстанта есть уже встроенная функция пользовательского редиректа.. Жаль что ее не вывели в админку.. Или вывели? Может я проглядел..
Тем не менее, решение найдено такое:
Создаем в корне файл custom_rewrite.php примерно с таким содержанием
Код PHP:
  1. <?php
  2. function custom_rewrite_rules(){
  3. $rules[] = array (
  4. 'source' => '/^blogs(.*?)$/is',
  5. 'target' => 'http://Мой_сайт/all{1}',
  6. 'action' => 'redirect-301'
  7. );
  8. $rules[] = array (
  9. 'source' => '/^all(.*?)$/is',
  10. 'target' => 'blogs{1}',
  11. 'action' => 'rewrite'
  12. );
  13. $rules[] = '';
  14. return $rules;
  15. }
  16. ?>
В этом примере все ссылки типа http://Мой_сайт/blogs меняются на http://Мой_сайт/all

Еще от автора

Приватность профиля - никому не показывать (только мне)
В 1.10.3 Понадобилось не показывать данные профиля пользователя никому. Оказалось все просто.
Хак для Меню shop | video
Дополнение к модулю меню для раскрытия дочерних пунктов меню у Шопа , Видео и Мапс и вообще..
Кнопка плюс минус один Instantshop
Решил прикрутить увеличение - уменьшение цифры товара для попадания в Корзину заказа
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.