#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'
, и это сработало.