CodeIgniter направляет проблему с индексной функцией контроллера - PullRequest
0 голосов
/ 27 февраля 2011

Моя текущая разработка использует CodeIgniter, и когда я пытаюсь передать некоторые параметры в индексную функцию моего основного контроллера, он возвращает мне 404 error.

http://localhost/gis/1 -> 404 ERROR
http://localhost/gis/home/1 -> 404 ERROR

На самом деле мой файл route.php имеет маршрутвот так:

$route['default_controller'] = "home";    

$route['home/([:num])'] = 'home/index/$1';

Мой .htaccess файл это (из этого поста , чтобы убрать index.php из URL CI):

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule>

Имой config.php файл:

$config['base_url'] = "http://localhost/gis";

$config['index_page'] = "";

Что я делаю не так?Спасибо!

1 Ответ

2 голосов
/ 27 февраля 2011

Обновление:

Цитирование ОП:

.htaccess не виновен.Проблема заключалась в том, что мой маршрут должен быть $ route ['home / (: num)'] = ... Я добавил и круглые скобки, и все работы.


Вместо:

$route['home/([:num])'] = 'home/index/$1';

Попробуйте указать его следующим образом:

$route['home/:num'] = 'home/index/$1';

Также убедитесь, что с application/config/routes.php контроллер по умолчанию установлен на home:

$route['default_controller'] = 'home';
...