2013-08-04 3 views
0

Все файлы работают в localhost, и я использую XAMPP, но я могу получить доступ к контенту в сегментированном подходе.CodeIgniter не может выполнить сегментный подход

, например, HTTP: // локальный/аутентификации/Логин

В конфигурации, у меня есть

<?php 
$config['base_url'] = 'http://localhost/'; 
$config['default_controller'] = 'main'; // Default controller to load 
$config['error_controller'] = 'error'; // Controller used for errors (e.g. 404, 500 etc) 
?> 

В контроллере, у меня есть

<?php 

class Auth extends Controller { 

function index() 
{ 
    // This is the default function (i.e. no function is set in the URL) 
} 
function login() 
{ 
    echo 'Hello World!'; 
} 
} 
?> 

так, когда я запускаю его, он должен повторять «привет мир», однако он говорит, что объект не найден! Запрошенный URL-адрес не найден на этом сервере. Это потому, что localhost не поддерживает сегментный подход?

+0

является установка CodeIgniter в корневом каталоге вашего LOCALHOST HTDOCS? –

+0

да, я установил локальный – user1851359

+0

в корне htdocs? –

ответ

1

В будущем, пожалуйста, работать над проектами под вложенной (например: http://localhost/projectA/)

вам нужно настроить .htacces файл (перезаписать XAMPP один)

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    #Removes access to the system folder by users. 
    #Additionally this will allow you to create a System.php controller, 
    #previously this would not have been possible. 
    #'system' can be replaced if you have renamed your system folder. 
    RewriteCond %{REQUEST_URI} ^system.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 

    #When your application folder isn't in the system folder 
    #This snippet prevents user access to the application folder 
    #Submitted by: Fabdrol 
    #Rename 'application' to your applications folder name. 
    RewriteCond %{REQUEST_URI} ^application.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 

    #Checks to see if the user is attempting to access a valid file, 
    #such as an image or css document, if this isn't true it sends the 
    #request to index.php 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 

<IfModule !mod_rewrite.c> 
    # If we don't have mod_rewrite installed, all 404's 
    # can be sent to index.php, and everything works as normal. 
    # Submitted by: ElliotHaughin 

    ErrorDocument 404 /index.php 
</IfModule> 
2

Вы не menation index.php файл ваш url is http:// localhost/auth/login but it must be http://localhost/project_name/index.php/controller_name

Вам не нужно указывать base_url просто оставить его

<?php 
$config['base_url'] = ''; 
$config['default_controller'] = 'main'; // Default controller to load 
$config['error_controller'] = 'error'; // Controller used for errors (e.g. 404, 500 etc) 
?> 

и теперь открыты http://localhost/project_name и она будет идти на ваш default_controller ..

если вы хотите удалить index.php, чем вы должны написать .htaccess правила