переписать правило для codeigniter - PullRequest
0 голосов
/ 20 мая 2010

это мой контроллер в CI

class Welcome extends Controller {

 function Welcome()
 {
  parent::Controller(); 
  }

 function index()
 {

 }
 function bil($model='')
 { }

Я хочу сделать переписать, чтобы

http://example.com/index.php/welcome/bil/model

становится

http://example.com/model

в моем htaccess у меня

RewriteBase /
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/welcome/$1 [L]
#RewriteRule ^(.*)$ /index.php/welcome/bil/$1 [L]

Я думал, что это так же просто, как удалить /index.php/welcome/ часть но когда я раскомментирую последнюю строку, она получит 500 внутренняя ошибка сервера

1 Ответ

0 голосов
/ 20 мая 2010

Вы захотите использовать mod_rewrite для удаления файла index.php, как у вас выше, но используйте Функции маршрутизации CodeIgniter для перенаправления example.com/model на example.com/welcome/bil/model.

В своем файле конфигурации rout.php вы можете определить новый маршрут, например:

// a URL with anything after example.com 
// will get remapped to the "welcome" class and the "bil" function, 
// passing the match as a variable
$route['(:any)'] = "welcome/bil/$1";

Итак, ввод example.com/abc123 будет эквивалентен example.com/welcome/bil/abc123.

Обратите внимание, что в URL разрешены только символы, разрешенные $config['permitted_uri_chars'] (который находится в вашем файле config.php).

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

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