Пользовательская маршрутизация URI по строке запроса с помощью CodeIgniter?

Я ищу сделать собственный маршрут, используя структуру CodeIgniter. Я пытаюсь сделать URL следующим образом:

http://localhost/accounts/Auth.dll?signin 

До сих пор я попытался добавить следующее в файл config.php:

 $route['accounts/Auth.dll?signin'] = "accounts/signin"; 

но, как вы догадались, это не сработает. Я также попытался избежать таких символов:

 $route['accounts/Auth\.dll\?signin'] = "accounts/signin"; 

и это тоже не работает. Я также пробовал включать в себя ведущую и конечную косые черты .. это тоже не сработало. Кто-нибудь случайно знает, что может решить мою проблему?

Я настоятельно рекомендую использовать маршрутизацию SEF.

Но если по какой-либо причине вы не хотите этого, вы можете проверить строку запроса внутри Контроллера Accounts и затем вызвать соответствующий метод следующим образом:

маршрутизатор:

 $route['accounts/Auth.dll'] = "accounts"; 

контроллер:

 class Accounts extends CI_Controller { public function __construct() { # Call the CI_Controller constructor parent::__construct(); # Fetch the query string if ($method = $this->input->server('QUERY_STRING', TRUE)) { # Check whether the method exists if (method_exists($this, $method)) { # Invoke the method call_user_func(array($this, $method)); } } } protected function signin() { # Your logic here } } 

Это позволяет автоматически вызывать методы по строке запроса.

Я не уверен, что все в порядке использовать GET-params в config.php routes.php. Попробуйте такой способ:

routes.php

 $route['accounts/Auth.dll'] = "accounts/index"; 

accounts.php

 public function index() { if ($this->input->get('signin') != false) { $this->signin(); } } private function signin() { // some code } для public function index() { if ($this->input->get('signin') != false) { $this->signin(); } } private function signin() { // some code } в public function index() { if ($this->input->get('signin') != false) { $this->signin(); } } private function signin() { // some code } 

Но, что касается меня, это плохо.

Я рекомендую вам просто использовать другую маршрутизацию:

 /accounts/Auth.dll/signin 

И так далее.