2016-11-22 1 views
2

Я новичок в кодеIgnitor. У меня есть некоторые ссылки в моем индексном файле. я удалил index.php из URL, так что теперь URL-адрес выглядят какCodeignitor- как загрузить новую страницу после удаления index.php

http://localhost/app/Loader/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 только как домен/приложение/mydemopage.php. Пожалуйста, помогите.

+0

, если вы делаете это только для сео-дружественных URL используйте routes.php, вставить весь свой путь в routes.php и определить URL, который вы хотите. –

+0

Да, я пробовал, но маршрутизация не работает –

ответ

1

Для этого вам нужен модуль перезаписи URL-адресов. Как получить эту работу зависит от используемого вами веб-сервера.

Для 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

+0

Я использую сервер Apache, я пытался, но все же не работал, я получаю объект не найден Ошибка –

+0

@ RedEye_0 Не работает слишком общий. Вы должны выяснить, что пошло не так, проверив журналы для подробных сообщений об ошибках. Обратите внимание, что вы не должны удалять файл 'index.php' в папке проекта. – josephting

1

Добавить ниже строки в файле .htaccess.

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 

RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*)$ index.php/$1 [L] 
1

Вы можете изменить файл маршрута, используя приведенный ниже пример. В строке я передаю имя контроллера и функции (метода). И в $ route array я передаю красивое имя, как мне нравится.

#Route file path : CI_project/applications/config/routes.php 

$route['default_controller'] = "Dashboard"; 
$route['contact-us'] = "dashboard/contact_us"; 

Но, пожалуйста, имейте в виду, что если вы хотите сделать выше кода работы необходимо включить модуль перезаписи и передать этот код в файле .htaccess.

.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>