#php #codeigniter #netbeans #wamp
#php #codeigniter #netbeans #wamp
Вопрос:
У меня возникли проблемы с codeigniter 3, я использую netbeans в качестве IDE и wampserver. Я смог успешно перейти в браузер на ‘localhost / ci_test /’ (ci_test — это имя проекта / веб-сайта ‘), и он служил мне по умолчанию welcome.php контроллер, однако я попробовал 2-й контроллер внутри папки CI controller под названием ‘Test.php ‘, со следующим содержанием:
<?php
class Test extends CI_Controller {
public function index() {
echo "This is default function.";
}
public function hello() {
echo "This is hello function.";
}
}
?>
затем, когда я попытался перейти к этому контроллеру: со следующим URL:
http://localhost/ci_test/index.php/test
это послужило мне моим welcome.php (это не то, чего я хотел),
затем я попробовал этот URL: http://localhost/ci_test/test.php
и я получил ответ:
Not Found
The requested URL /ci_test/test.php was not found on this server.
Apache/2.4.9 (Win64) PHP/5.5.12 Server at localhost Port 80
Я не понимаю, чего мне здесь не хватает…
Примечание: я не менял файлы .htacess, предоставленные codeigniter, и оставил их как есть (возможно, проблема там).
Я изменил только следующие вещи в CI:
application/config/config.php:
$config['base_url'] = 'http://localhost/ci_test/';
$config['index_page'] = ''
$config['uri_protocol'] = 'PATH_INFO';
Я надеюсь, что кто-то может помочь здесь 🙂
РЕДАКТИРОВАТЬ: я прочитал первые 4 ответа, и он все еще не работает
EDIT2: итак, после того, как я решил сдаться, я заметил, что на моем сервере apache не включен ‘mod_rewrite’, поэтому я включил его, снова попробовал тот же проект, и он все еще не работал, затем я решил создать новый проект с нуля и с помощью CI добавил новый контроллер итеперь все работает хорошо. это лол… Большое спасибо всем тем, кто пытался мне помочь 🙂
Комментарии:
1. Подумайте об этом. Ваша система всегда запускается с ‘localhost / ci_test /’, если это не запускается, все виды вещей не настраиваются. Поэтому при отладке вы всегда запускаете со стартовой страницы туда, где хотите выполнить отладку. Если вы установите точку останова в интересующем вас скрипте, когда вы попадете туда через обычный поток сайта, точка останова сработает.
Ответ №1:
Вам необходимо получить прямой доступ к этому тестовому контроллеру, затем вам нужно добавить файл .htaccess в корень проекта. вот файл .htaccess, чтобы избежать index.php в codeigniter
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
если вы добавите этот файл .htaccess в корень, ваша проблема будет решена..
также не нужно добавлять расширение в свой URL-адрес (http://localhost/ci_test/test.php ) , это неправильно
http://localhost/ci_test/test
этого достаточно, чтобы загрузить ваш контроллер
Ответ №2:
добро пожаловать в контроллер
<?php
class Welcome extends MY_Controller
{
public function index()
{
$this->load->view('welcome');
}
}
добро пожаловать на просмотр
<a href="<?php echo base_url('test'); ?>">Test Page</a>
тестовый контроллер
<?php
class Test extends MY_Controller
{
public function index()
{
$this->load->view('test');
}
}
тестовый просмотр
<h1>Test Page</h1>
Представления должны быть названы test.php и welcome.php и помещается в папку views.
Дайте нам знать, как у вас дела.
Взгляните на routes.php файл в папке конфигурации
Изменить $route['default_controller'] = 'welcome';
Для
$route['default_controller'] = 'test';
Посмотрите, работает ли это
Если вы получаете сообщение об ошибке, в котором говорится, что не удается найти страницу, посмотрите на адресную строку, если она такая
http://localhost/ci_test/test
попробуйте изменить его на это
http://localhost/index.php/ci_test/test
Комментарии:
1. это работает, но тогда я не смог бы получить доступ к ‘welcome. php’ Я хочу иметь прямой доступ ко всем моим контроллерам 🙂
2. Вам нужно использовать гиперссылки для изменения страницы. Контроллер по умолчанию — это то, с чего вы начинаете.
<a href="<?php echo base_url('welcome')">Welcome Page</a>
должно вернуть вас на страницу приветствия.3. Вы пробовали использовать ссылку для смены страницы? Если да, то какую ошибку вы получили?
4. да, я только что попробовал это с контроллера ‘test’ (после того, как я изменил $route [‘default_controller’] = ‘test’;), Чтобы вернуться к моему контроллеру ‘welcome’, но это не сработало: не найден Запрошенный URL / ci_test / welcome не был найден на этом сервере. Сервер Apache / 2.4.9 (Win64) PHP / 5.5.12 на порту локального хоста 80
5. Вы не можете поместить гиперссылку в тестовый контроллер, она должна перейти в представление.
Ответ №3:
Из коробки codeigniter использует url . com/controller/метод.
Вы создали тестовый контроллер с именем Test.php . Для доступа к нему вы бы использовали…
http://localhost/ci_test/test
Вы не ставите .php в конце.
Комментарии:
1. Упс @anuraj, ты уже ответил на это, и ты справился лучше!
Ответ №4:
Это быстрый быстрый ответ… Если вы используете WampServer, убедитесь, что он не установил MultiViews ни в вашем файле httpd, ни в файле vhosts, если вы его используете.