создать динамический URL в Codeigniter, как Facebook - PullRequest
0 голосов
/ 20 марта 2012

Мне нужно создать динамический URL в codeigniter, как в приложении Facebook.Можно ли создать такой URL, используя каркас codeigniter?например: 1. www.facebook.com/nisha 2. www.facebook.com/dev

Ответы [ 3 ]

2 голосов
/ 20 марта 2012

Вам нужно настроить пользовательскую маршрутизацию для контроллера в application / config / rout.php.Например:


$route['([a-zA-Z]+)'] = "controller_name/function/$1";

Это делает URL-адреса такими, какими вы хотите, но делает все ваши контроллеры недоступными, потому что любой формат ' / controllername / parameter / ' будет совпадать с' (: any) ' и будет перенаправлен на наш ' имя_контроллера / function / '.

Чтобы остановить контроллеры, перенаправленные маршрутизатором CI, вам придетсявначале определите все ваши контроллеры на файле rout.php, затем добавьте вышеупомянутое правило маршрутизации в последнюю строку.Вот как я сделал это, чтобы работать.Надеюсь, это поможет вам.

0 голосов
/ 22 августа 2013

Попробуйте так.это уменьшит количество повторяющихся строк, если у вас много контроллеров, но я не знаю, нарушает ли это какие-либо правила CI.

//this code block should be placed after any kind of reserved routes config
$url_parts = explode('/',strtolower( $_SERVER['REQUEST_URI']) );
$reserved_routes = array("controller_1", "controller_2", "controller_3" );
if (!in_array($url_parts[1], $reserved_routes)) {    
    $route['([a-zA-Z0-9_-]+)'] = "controller_1/profile/$1";
}
0 голосов
/ 20 марта 2012

Это довольно легко настроить с помощью маршрутов.Прочитайте их маршрутизацию guide

$route['([a-zA-Z]+)'] = "controller/user/$1";

Однако, если это только один из способов доступа к сайту, это похоже на domain.com/username, тогда все в порядке, в противном случае это окажется трудным подвохом.в долгосрочной перспективе.В этом случае ограничьте Маршрут ограниченной областью, например

$route['users/([a-zA-Z]+)'] = "controller/user/$1";

. Это поможет расширить систему различными способами

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