2015-01-03 6 views
0

Просто скачан CI 2.2, переименован в папку Test1, скопирован в папку htdocs xampp.доступ к контроллеру в подпапке codeigniter

Протестировано с помощью сайта http://localhost/Test1, оно запустило приветственное сообщение. Теперь добавлена ​​папка для контроллеров («admin») и контроллер в ней (home.php). поэтому структура:

controllers 
    --> admin 
      --> home.php 
    --> index.php 
    --> welcome.php 

и код в home.php является

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
class Home extends CI_Controller { 
    public function index() 
    { 
     echo 'Hello'; 
    } 
} 

При попытке доступа к http://localhost/Test1/admin/home или http://localhost/Test1/admin/home/index он говорит, объект не найден (ошибка 404).

Я также попытался добавить $route['admin'] = "admin/home"; в application\config\routes.php, так что я могу получить доступ как http://localhost/Test1/admin, но бесполезно. У меня отсутствует настройка?

+0

Вы установили base_url в файле конфигурации.? –

+0

, используя этот $ config ['base_url'] = 'http: // localhost/Test1 /'; ничего не менял :( –

ответ

1

создать файл htaccess.htaccess и пропустить в нем следующий код. сохранить его в папке Test1

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* /Test1/index.php/$0 [PT,L] 
+0

А, это сработало. Любая помощь по требуемой конфигурации htaccess pls? –

+0

, так что если у меня есть 3 режима папки внутри контроллера, то я должен добавить 3 'RewriteRule'? @Tariq –

0
RewriteEngine on 
RewriteCond $1 !^(index\.php|resources|robots\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

вы должны создать файл .htaccess и вставить упомянутые выше строки. и поместите этот файл в папку проекта (Test1).

2

Вы настроили CodeIgniter, чтобы он мог работать без index.php? В противном случае правильный URL должно быть что-то вроде:

http://localhost/index.php/admin/home 

или

http://localhost/index.php/admin/home/index 

... ведьма в значительной степени то же самое для CI.

Если вы попробуете один из указанных выше URL-адресов, и у вас есть приветственное сообщение, это хорошая новость! И вот решение: вы должны сказать CI не использовать index.php в своем URL-адресе.

  1. Откройте .htaccess или создать в корень вашего вебсайта,
  2. Поместите следующие строки в нем:

    RewriteEngine on
    RewriteCond $1 !^(index\.php|images|robots\.txt)
    RewriteRule ^(.*)$ /index.php/$1 [L]

  3. Проверьте вы удалили строки, которые вы добавили в config/routes.php для своих тестов.

  4. Попробуйте получить доступ к папке администратора с тем же URL-адресом, но без index.php.

    Сообщите нам, что гонг включен.

+0

Спасибо за подробный входы.После установки htaccess он работает нормально. Однако я назвал Тарика одним из ответов на его быстрый ответ и правильное направление. –

Смежные вопросы