CI Static D / C / M Routes и параметры URI - PullRequest
2 голосов
/ 12 января 2012

У меня немного сложнее, и я даже не уверен, что CI предназначен для такой работы.

У меня есть поддомен, давайте назовем его test.warren.com

test.warren.com указывает на CI index.php, который отделен от основного index.php, который загружается при доступе к warren.com.

В файле test.warren.com index.php определены статические маршруты в соответствии с комментариями CI

/*
 * --------------------------------------------------------------------
 * DEFAULT CONTROLLER
 * --------------------------------------------------------------------
 *
 * Normally you will set your default controller in the routes.php file.
 * You can, however, force a custom routing by hard-coding a
 * specific controller class/function here.  For most applications, you
 * WILL NOT set your routing here, but it's an option for those
 * special instances where you might want to override the standard
 * routing in a specific front controller that shares a common CI installation.
 *
 * IMPORTANT:  If you set the routing here, NO OTHER controller will be
 * callable. In essence, this preference limits your application to ONE
 * specific controller.  Leave the function name blank if you need
 * to call functions dynamically via the URI.
 *
 * Un-comment the $routing array below to use this feature
 *
 */
    // The directory name, relative to the "controllers" folder.  Leave blank
    // if your controller is not in a sub-folder within the "controllers" folder
    $routing['directory']   = 'subdir';

    // The controller class file name.  Example:  Mycontroller
    $routing['controller']  = 'testcontroller';

    // The controller function you wish to be called.
    $routing['function']    = 'testmethod';

Теперь это все работает, денди - у меня есть сайт с одним методом. Ничто другое не доступно; только этот метод. Если я захожу на test.warren.com - я получаю все, что выполняется testmethod ().

Теперь, часть, которую я не могу сделать - это передать в параметрах URI Например: test.warren.com/param1/param2/param3 --- 404

Насколько я могу отладить, причина этого не в том, что, когда класс маршрутизатора инициализирован, он пытается проверить, является ли 'param1' классом контроллера или каталогом; что соответствует стандартной конфигурации CI. А потом 404 с.

Я думаю, что могу обойти это, отредактировав основной файл core / CodeIgniter.php, который загружается внизу index.php; но я очень сомневаюсь, так как эта установка CI имеет несколько установок сайта.

CI v2.0.3

Кто-нибудь знает, возможно ли это?

1 Ответ

0 голосов
/ 27 апреля 2012

Если вы используете свой «маршрут по умолчанию» таким образом, вам нужно будет настроить дополнительный маршрут для передачи параметров.

т.е.

$route['(:any)/(:any)/(:any)'] = 'controller/action/$1/$2/$3';

Это «должно» работатьчтобы соответствовать ему, вам нужно будет передать три параметра, и если вы не передадите три, он вернется к контроллеру по умолчанию или 404 (если передан только один или два).

Надеюсь, что это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...