Переназначение PyroCMS пошло не так

#codeigniter #pyrocms

#codeigniter #pyrocms

Вопрос:

У меня есть это переназначение:

 public function _remap($method, $params = array()) {
        if (method_exists($this, $method)) {
            if ($this -> uri -> segment(1)) {
                $this -> index($this -> uri -> segment(1));
            } else {
                $this -> index();
            }
        } else {
            return call_user_func_array(array($this, $method), $params);
        }
    }
  

На моем локальном компьютере это работает нормально, но при моем тестировании оно перенаправляет только на index () независимо от того, ЧТО я ввожу в качестве строки запроса. Кто-нибудь, пожалуйста, поможет мне отладить это?

The routes.php одинаково на обоих серверах.

Если я попытаюсь изменить свою функцию index, чтобы выводить только запрошенный uri следующим образом:

 function index($id = null)
{
    $this->output->set_output('id: ' . $id);
    return;
  

выводится только «id:». Следовательно, $ id где-то потерян при переходе, но я действительно не знаю, почему

У меня было system/cms/config/config.php РЕШЕНИЕ $config['uri_protocol'] ) 'PATH_INFO' , но на моем производственном сервере это не сработало, поэтому я изменил его на 'AUTO' , и оно сработало.

Комментарии:

1. Похоже, что это проблема с перезаписью. Вы пробовали использовать одни и те же правила на обоих серверах?

2. @NomikOS — Маршруты одинаковы на обоих серверах, в моем конфигурационном файле есть несоответствие из-за того, что base_url разные (один — localhost, а другой — domain )

3. Молодец! В любом случае я сказал «правила», т. Е. переписать правила (возможно, в .htaccess). Это может вызвать аналогичные проблемы при смене серверов. Пожалуйста, скажите мне, работают ли «красивые URL» все еще после изменения на $config['uri_protocol'] = 'auto' . Спасибо.-

4. @NomikOS — если под pretty вы подразумеваете URI, сегментированный как контроллер / метод / параметр, то да.

Ответ №1:

у system/cms/config/config.php меня было $config['uri_protocol'] = 'PATH_INFO' , но на моем производственном сервере это не сработало, поэтому я изменил его на 'AUTO' , и это сработало.