Я новичок в CodeIgnitor. У меня есть некоторые ссылки в моем индексном файле. Я удалил index.php из url, так что теперь url выглядит как
HTTP: // локальный / приложение / Грузчик / demo_page
Это, если мой код Loader:
class Loader extends CI_Controller { public function __construct(){ parent::__construct(); $this->load->helper('url'); } public function index() { $this->load->view('header'); $this->load->view('center'); $this->load->view('footer'); } public function demo_page() { $this->load->view('demo'); } }
Когда я нажимаю на эту ссылку, я не получаю ошибку.
Теперь что мне делать?
Я хочу удалить имя контроллера также из url и хочу показать довольно url только как domain / app / mydemopage.php. Пожалуйста помоги.
Для этого вам нужен модуль URL Rewrite. Как получить эту работу зависит от используемого вами веб-сервера.
Для Apache отредактируйте httpd.conf
и раскомментируйте (удалите ведущую #
) следующую строку, затем перезапустите веб-сервер.
LoadModule rewrite_module modules/mod_rewrite.so
Добавьте / отредактируйте файл .htaccess
в корневой папке CodeIgniter и вставьте это.
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
Если вы не указали ошибку RewriteEngine здесь, убедитесь, что корневая папка веб-сайта CodeIgniter позволяет переопределить FileInfo
в конфигурации вашего веб-сервера httpd.conf
.
AllowOverride FileInfo
Добавьте ниже строки в файл .htaccess.
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
Вы можете изменить файл маршрута, используя приведенный ниже пример. В строке я передаю имя контроллера и функции (метода). И в $ route array я передаю красивое имя, как мне нравится.
#Route file path : CI_project/applications/config/routes.php $route['default_controller'] = "Dashboard"; $route['contact-us'] = "dashboard/contact_us";
Но имейте в виду, что если вы хотите выполнить надработку над кодом, вам нужно включить модуль перезаписи и передать этот код в .htaccess.
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /prjectName/ RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ /index.php?/$1 [L] RewriteCond %{REQUEST_URI} ^application.* RewriteRule ^(.*)$ /index.php?/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule> # If we don't have mod_rewrite installed, all 404's # can be sent to index.php, and everything works as normal. # Submitted by: Pawan Nagar <IfModule !mod_rewrite.c> ErrorDocument 404 /index.php </IfModule>