У меня есть контроллер по умолчанию с индексная функция, который вызывается с
http://localhost/myproject/welcome
но я также хочу обрабатывать звонки на базовый URL
http://localhost/myproject/
Как я могу это сделать?
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller
{
public function index()
{
$this->load->view('welcome_message');
}
}
Редактировать:
Я объявил контроллер приветствия контроллером по умолчанию
$route['default_controller'] = 'welcome';
Это htaccess
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Так как похоже, что вы хотите удалить index
из вашего URL, я предлагаю вам сначала установить свой .htaccess
сделать именно это:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Второй шаг:
Проверьте CI config.php
и установить $config['base_url']
туда, где когда-либо ваш index.php
файл находится (вы сказали, что хотели http://localhost/myproject/
, Не оставляйте после себя обратную косую черту.)
Установите свойconfig['index_page']
значение для ''
(Пусто)
Вы уже установили свой контроллер по умолчанию, с вами все будет хорошо.
Других решений пока нет …