CodeIgniter URL Rewrite для сервера Nginx - PullRequest
2 голосов
/ 16 июня 2011

Это мой код класса CodeIgniter Controller.

class View extends MY_Controller
{

    function index($number)
    {
        .....
    }
    .......
}

Через браузер я могу получить доступ к методу индекса класса View, используя этот URL

http://localhost/view/index/12

Итак, мой вопрос

есть ли эффективный способ переписать URL, например, в этот URL

http://localhost/view/12

Мой веб-сервер - Nginx.

Ответы [ 2 ]

5 голосов
/ 16 июня 2011

index() вызывается по умолчанию, но если вы хотите сделать это для других функций, вы можете использовать функцию маршрутизации URI в CI.

Добавьте это к rout.php в директории config.

$route['view/(:num)'] = "view/index/$1";
4 голосов
/ 16 июня 2011

Удалите завершающий index со всех контроллеров, используя следующую конфигурацию в Nginx

# removes trailing "index" from all controllers
if ($request_uri ~* index/?$)
{
    rewrite ^/(.*)/index/?$ /$1 permanent;
}

Явно вы можете направить URL-адреса из файла маршрутизации CodeIgniter, расположенного в

./application/config/routes.php

Вставьте этот код. Это должно работать как для серверов Nginx, так и для серверов Apache.

// hide index from all controllers
$route['(:any)/(:any)'] = "$1/index/$2";

// hide only from View Controller
$route['view/(:any)'] = "view/index/$1";

// hide only from View with numeric parameter
$route['view/(:num)'] = "view/index/$1";

Дополнительную информацию о перезаписи URL Nginx можно найти в документации. Надеюсь, это поможет вам. Спасибо !!

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