2016-01-16 3 views
0

Когда я обращаюсь к localhost: 8080/ignite_me, он показывает мне содержимое home.php с верхним и нижним колонтитулом, но когда я пытаюсь localhost: 8080/igniteme/test Это дает мне Apche 404 страницы и test.php существует в моих взглядах/страницах, где я поставил свою home.phpCodeigniter Маршрутизация для статических страниц домашняя страница, работающая с другими маршрутами, а не страницы

даже локальный: 8080/igniteme/дома не работаю, но локальный: 8080/igniteme показывает содержание home.php

routes.php

$route['(:any)'] = 'pages/view/$1'; 
$route['default_controller'] = 'pages/view'; 
$route['404_override'] = ''; 
$route['translate_uri_dashes'] = FALSE; 

Pages.php

<?php 
class Pages extends CI_Controller { 

    public function _construct() 
    { 
     parent::_construct(); 
    } 

     public function view($page = 'home') 
     { 
      if (! file_exists(APPPATH.'/views/pages/'.$page.'.php')) 
      { 
       // Whoops, we don't have a page for that! 
       show_404(); 
      } 

      $data['title'] = ucfirst($page); // Capitalize the first letter 



      $this->load->view('templates/header', $data); 
      $this->load->view('pages/'.$page, $data); 
      $this->load->view('templates/footer', $data); 
     } 
} 

.htaccess

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

config.php

$config['base_url'] = 'http://localhost:8080/igniteme/'; 
$config['index_page'] = ''; 

Я не могу понять, почему home.php работает с локального хоста: 8080/ignite_me и почему не с локального хоста: 8080/igniteme/home или любая другая страница не работает Я скопировал .htaccess из какого-то другого вопроса переполнения стека, он не работал даже с дефолтным.

вот ссылка на мою полную папку codeignite igniteme

+0

Есть у что-то изменить в автозагрузке и конфигурационный файл? –

+0

yes Я обновил изменения в config.php, и я отредактировал autoload.php '$ autoload ['helper'] = array ('url');' –

+0

Test.php существует в представлениях/папке? – devpro

ответ

2

Я использую WAMP Я использую эту HTAccess ниже

Options +FollowSymLinks 
Options -Indexes 
DirectoryIndex index.php 
RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

Убедитесь в главном каталоге.

Также в WAMP убедитесь вы включили APACHE MOD перепишут

Scroll/нажмите и перейдите вниз список, чтобы вы нашли rewrite_module нажмите на него, то пойти и перезапустить WAMP.

enter image description here

+0

Извините за вопрос о том, как включить mod rewrite в apache –

+0

@AbhinavSuryawanshi Я добавил изображение, когда вы добираетесь до списка, перейдите к модулю перезаписи и нажмите на него и перезапустите wamp, как только щелкните по нему. – user4419336

+0

Как вы ушли. – user4419336

1

Начнет с простым подходом

Я предполагаю, что ignite_me ваша папка проекта и в папке просмотров у вас есть два файла test.php и home.php и по умолчанию есть файл welcome.php.

Теперь Запуск Настройки Ваших маршрутов

1.First, когда вы попали в URL с localhost:8080/ignite_me он показывает вам welcome.php файл

Как есть контроллер для приветствия
Теперь сначала решить, какой контроллер вы хотите сделать по умолчанию пусть предположите, что вы установили контроллер, чтобы проверить это каждый раз, когда вы нажмете URL вид тестов откроет
для конфигурации, как это

В routes.php

$route['default_controller'] = "test"; 

Теперь каждый раз, когда это относится к представлениям test.php
, если вы хотите получить доступ, как этот
localhost:8080/ignite_me/index.php/test.php это перенаправлять же

Теперь для Удаления index.php мы должны использовать .htaccess файл in

.Htaccess

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ index.php/$1 [L] 

Теперь вы можете получить доступ к нему снова
localhost:8080/ignite_me/index.php/test.php это дает вам 404 не найдена ошибка
localhost:8080/ignite_me/test.php дает вам эту страницу

Genereal Пути маршрута является

localhost:8080/ignite_me/[controller]/views

+0

that dint work :( –

+0

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

+0

Я отредактировал .htaccess в соответствии с ответом stackoverflow, config.php, чтобы иметь base_url, autoload.php для помощника URL и database.php , пожалуйста, посмотрите на мой .htaccess и дайте мне знать, нужны ли изменения –

2

попробуйте thi s

$config['base_url'] = 'http://localhost:8080/igniteme/'; 
$config['index_page'] = 'index.php'; 
+0

что тоже работает dint. –

+0

изменить $ route ['default_controller'] = 'pages/view'; на этот $ route ['default_controller '] =' Pages/view '; –

+0

$ route [' default_controller '] =' Pages/view 'dint help –

0

я столкнулся с подобным вопросом, когда я переехал приложение CodeIgniter 2 из XAMPP в окнах на Ubuntu Server 14.04 LTS

мой файл .htaccess:

RewriteEngine On 
RewriteCond $1 !^(index\.php|resources|robots\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

$ config ['index_page'] = ''; // пустой, так index.php не будет показывать инлайн с .htaccess файл

Я маршруты включить и получал 404 на все, кроме моего приветствия контроллера

То, что я должен был убедиться, что mod_rewrite было включить и установить следующую конфигурацию на /etc/apache2/sites-available/000-default.conf

Прямо под «DocumentRoot/вар/WWW/HTML» добавить следующие строки ниже:

<Directory "/var/www/html"> 
    AllowOverride All 
</Directory> 

Сохранить и выйти nano editor через CTRL-X, «y» и ENTER.

И перезапустить службу: Суда службой apache2 перезагрузку

Надеется, что это делает трюк для вас

Смежные вопросы