CodeIgniter URI Routing - Как удалить index.php - PullRequest
0 голосов
/ 17 сентября 2018

Вот я с вопросом, который мог быть услышан много раз, но все же я не мог найти идеального решения для этого.У меня такой вопрос: как скрыть имя модуля, имя контроллера и имя метода из URL в php codeigniter.Да, я много гуглил и видел много видео, но не достиг успеха.

Ниже приведены строки кода разных файлов:

<li><a href="<?php echo base_url('index.php/user/UserController/homeIndex');?>">Home</a></li>

В приведенном выше коде естьэто строка меню ul li, в которой, когда я нажимаю Home, она должна перенаправлять на метод homeIndex UserController и пользовательского модуля.UserController - это имя контроллера homeIndex - это менто в UserController, а user - это модуль.Я следую за структурой HMVC здесь.

В настоящее время, когда я нажимаю на кнопку home, она создает ниже url http://localhost/KWeds_svn/kweds_hmvc/index.php/user/UserController/homeIndex

Ниже приведен код моего файла .htacces, который я сейчас использую

<IfModule mod_rewrite.c>
  RewriteEngine On
  #RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [QSA,L]
</IfModule>

Ниже base_url, определенный в config.php

 $root = "http://".$_SERVER['HTTP_HOST'];
 $root .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
 $config['base_url']    = "$root";
$config['index_page'] = 'index.php';

Мой ожидаемый вывод для URL-адреса только http://localhost/KWeds_svn/kweds_hmvc/

Пожалуйста, дайте мне знать, как я могу скрыть имя модуля, контроллераимя и имя метода.

1 Ответ

0 голосов
/ 17 сентября 2018

Существует простое решение для использования URI-маршрутизации в CodeIgniter.

Если вы откроете файл routes.php в папке config, вы сможете сопоставить URI с контроллерами и методами.

В вашем случае это будет работать примерно так:

$route['KWeds_svn/kweds_hmvc'] = 'UserController/homeIndex';

Также вам необходимо выяснить, как удалить index.php из URI, для этого выполните следующие действия:

Перейти к config.php и изменить

$config['index_page'] = 'index.php';

до

$config['index_page'] = '';

Затем перейдите в корневую папку документа (где хранятся конфиги, папки приложения) и создайте новый файл с именем .htaccess, в этом файле напишите следующий код:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

Если вы размещаете свой собственный сервер, вам может потребоваться включить rewrite module в apache. Для этого перейдите в командную строку вашего сервера и введите следующее:

sudo a2enmod rewrite

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...