.htaccess замена части URL

 
Посетитель
small user social cms
Медаль
Сообщений: 192
Добрый день. Хочу поменять слово в URL сайта.
Естественно, старые URL должны быть через 301 редирект. Как я понимаю системное имя контента, после создания, поменять нельзя. Как решить это проблему? Гуглил, пробовал разные способы, единственное чего смог добиться - сменить URL, но вместо страницы с контентом, по новому адресу, получаю 404 страницу.

Сейчас

http://example.com/places
http://example.com/places/mycity
http://example.com/places/myobject.html

Надо

http://example.com/company
http://example.com/company/mycity
http://example.com/company/myobject.html

Спасибо.
Редактировалось: 1 раз (Последний: 18 ноября 2015 в 22:10)
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1164
а это http://docs.instantcms.ru/manual/settings/rewriting не поможет?
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 192
Val, URL переименовался, теперь при переходе на страницу компонента получаю 404 ошибку. Очистка кеша/куков не помогает
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1164
Теоретически должно было работать...
asa:
теперь при переходе на страницу компонента получаю 404 ошибку.
при переходе сюда http://example.com/places или http://example.com/company? Опишите максимально подробно.
"URL переименовался" - это вы как определили?
Посетитель
small user social cms
Медаль
Сообщений: 192
Добавил в файл /system/config/remap.php

function remap_controllers(){
return array(
'places' => 'company',
);
}

Теперь все ссылки отображаются как мне надо - было http://example.com/places стало http://example.com/company. Однако, при переходе по этой ссылке получаю 404 ошибку. Ни очистка кеша, ни перезапуск браузера, ни перезапуск Денвера не помогают.

Определил очень просто, при наведении мыши на ссылку в меню сайта, которое подключено как {content:places}, вижу внизу слева браузера ссылку http://example.com/company, при переходе по ссылке сверху браузера, в адресной строке, вижу http://example.com/company, однако страница не отображается, возвращает 404 ошибку.
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1164
Попробовал на локалке, та же проблема. Думаю стоит сообщить об этом разработчикам.
У меня сейчас версия 2.3.0, на более ранних версиях работало.
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1241
Val:
Разработчик сказал что данный момент, InstantCMS не позволяет переопределять URL для типов контента.
Дополнения для InstantCMS 2 | Готовый сайт Доска объявлений
Посетитель
small user social cms
Медаль
Сообщений: 192
Val, сам только что скачал чистую iCMS 2 и попробовал. Тоже 404. Значит ждем, пока обратят Fuze или r2 внимание на эту тему.
Evanescence, ясно.

Но странно, т.к. по идее .htaccess все равно какая стоит CMS и стоит ли она вообще, но его правка тоже выкидывает 404. Может есть идеи как через этот файл сделать смену URL?
Редактировалось: 2 раз (Последний: 18 ноября 2015 в 23:13)
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1164
Evanescence:
Разработчик сказал что данный момент, InstantCMS не позволяет переопределять URL для типов контента.
Вот полазил по файлам...
если немного перенести ремапинг то все работает вроде (файл: ..\system\core\core.php)
было:
Код PHP:
  1. /**
  2.   * Запускает выбранное действие контроллера
  3.   */
  4. public function runController(){
  5.  
  6. $config = cmsConfig::getInstance();
  7.  
  8. // контроллер и экшен по-умолчанию
  9. if (!$this->uri_controller){ $this->uri_controller = $config->ct_autoload; }
  10. if (!$this->uri_action) { $this->uri_action = 'index'; }
  11.  
  12. if (!self::isControllerExists($this->uri_controller)) {
  13. $this->uri_action = $this->uri_controller;
  14. $this->uri_controller = $config->ct_default;
  15. }
  16.  
  17. // проверяем ремаппинг контроллера
  18. $remap_to = self::getControllerNameByAlias($this->uri_controller);
  19. if ($remap_to) { $this->uri_controller = $remap_to; }
  20.  
  21. $this->controller = $this->uri_controller;
  22.  
  23. // загружаем контроллер
  24. $controller = self::getController($this->uri_controller, $this->request);
  25.  
  26. // сохраняем в контроллере название текущего экшена
  27. $controller->current_action = $this->uri_action;
  28.  
  29. // запускаем действие
  30. $controller->runAction($this->uri_action, $this->uri_params);
  31.  
  32. }
стало:
Код PHP:
  1. /**
  2.   * Запускает выбранное действие контроллера
  3.   */
  4. public function runController(){
  5.  
  6. $config = cmsConfig::getInstance();
  7.  
  8. // контроллер и экшен по-умолчанию
  9. if (!$this->uri_controller){ $this->uri_controller = $config->ct_autoload; }
  10. if (!$this->uri_action) { $this->uri_action = 'index'; }
  11.  
  12. // проверяем ремаппинг контроллера // <- переставили немного выше
  13. $remap_to = self::getControllerNameByAlias($this->uri_controller);
  14. if ($remap_to) { $this->uri_controller = $remap_to; }
  15.  
  16. if (!self::isControllerExists($this->uri_controller)) {
  17. $this->uri_action = $this->uri_controller;
  18. $this->uri_controller = $config->ct_default;
  19. }
  20.  
  21. // раньше был тут
  22.  
  23. $this->controller = $this->uri_controller;
  24.  
  25. // загружаем контроллер
  26. $controller = self::getController($this->uri_controller, $this->request);
  27.  
  28. // сохраняем в контроллере название текущего экшена
  29. $controller->current_action = $this->uri_action;
  30.  
  31. // запускаем действие
  32. $controller->runAction($this->uri_action, $this->uri_params);
  33.  
  34. }
чяднт?
Редактировалось: 1 раз (Последний: 18 ноября 2015 в 23:32)
Посетитель
small user social cms
Медаль
Сообщений: 192
Val, к огромному сожалению не работает.

Что, процитирую классика, случай подходящий.
Ну, что ж!
На взгляд-то он хорош,
Да зелен — ягодки нет зрелой:
Тотчас оскомину набьешь.
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1164
странно(((, на локалке у меня сработало...
Тогда остается ждать решение разработчиков
Посетитель
small user social cms
Сообщений: 23
Val:

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

Было та же проблема после обновления, создавал недавно тему http://instantcms.ru/forum/thread23039.html, ничего не помогало, поправил core.php как подсказали выше, и все заработало. Спасибо!
Редактировалось: 1 раз (Последний: 19 ноября 2015 в 11:57)
Посетитель
small user social cms
Медаль
Сообщений: 192
хмм, а вот теперь действительно странно- у Вас заработало, а у меня нет. При чем хаков у меня вообще нет. Удивительно shock

-----
На локалке с чистой CMS заработало. Видимо проблема в одном из дополнений...
Редактировалось: 1 раз (Последний: 19 ноября 2015 в 12:24)
Посетитель
small user social cms
Сообщений: 23
asa:

хмм, а вот теперь действительно странно- у Вас заработало, а у меня нет. При чем хаков у меня вообще нет. Удивительно shock

Проверил еще на одном сайте первый лежит на reg.ru второй на peterhost.ru все работает.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.