#.htaccess #codeigniter
Вопрос:
У меня есть контроллер, названный примерно:
<?php
namespace AppControllers;
class About extends BaseController
{
public function __construct()
{
$this->data['site_title'] = "About Us";
}
public function index()
{
//return view('welcome_message');
return $this->_renderPage('About/index', $this->data);
}
}
функция render_page находится в базовом контроллере следующим образом:
public function _renderPage($view, $data = [])
{
$data = array_merge($this->data, $data);
$data['_html_content'] = view('Home/' . $view, $data);
return view('Home/page', $data);
}
Моя структура папок такова:
- апп
-
-Controllers
-
- About
-
- Home
-
- Contact
Мои файлы просмотра выглядят следующим образом:
- Число просмотров
-
-Home
-
-Contact - index.php
-
-About - index.php
-
- ...
То, о чем я говорю, это
<a href="<?php echo site_url('about') ?>">About</a>
В моем файле .htaccess есть эта строка кода:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(. )$ index.php/$1 [L]
Почему я все еще получаю сообщение об ошибке: 404 — Файл не найден
Контроллер или его метод не найден: AppКонтроллерыIvy::codeignitor при вводе URL-адреса:
localhost:8080/myproject/about
Комментарии:
1. Вы добавили маршрут в Routes.php ?
2. ДА. Как,
$routes->add('about', 'About::index');
3. Не могли бы вы включить свои файлы просмотра, чтобы убедиться, что все существует?
4. Я внес правку и показал свою структуру папок для представлений
Ответ №1:
попробуйте <?= base_url()?>
вместо этого <?= site_url()?>