2013-10-14 5 views
2

В моем новом проекте CI я получаю следующую ошибку каждый раз, когда пытаюсь получить доступ к любому URL-адресу, кроме базового url и базового url /index.php. Например, если я хотел бы получить доступ к «о» странице:Маршрутизация по умолчанию для Codeigniter не работает

Не найдено

Запрошенный URL/my_base_url/о не найден на этом сервере.

Это то, что мой routes.php файл выглядит следующим образом:

$route['default_controller'] = "base"; 
$route['about'] = "base/about"; 
$route['404_override'] = ''; 

Я тройной проверил мой базовый контроллер, и это, безусловно, имеет о методе (который загружает существующий «о» целях).

Вот мой файл .htaccess:

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

И вот несколько вещей, которые я поставил в моем файле config.php:

$config['base_url'] = 'http://localhost/my_base_url/'; 
$config['index_page'] = ''; 
$config['uri_protocol'] = 'AUTO'; 

Что я делаю неправильно? Любая помощь очень ценится!

ответ

1

файл .htaccess должен находиться в директории my_base_url, и вы должны включать в себя переписать базу:

Options FollowSymLinks 

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

Я попытался это, но затем получил "Запретный У вас нет разрешения на доступ/my_base_url/на этом сервере." (Я проверил разрешения на этот каталог, хотя, и я должен быть в состоянии просмотреть его!) – anniebabannie

+0

@anniebabannie Вы уверены, что 'index.php' является одним из файлов в списке« DirectoryIndex »? Вы уверены, что файл htaccess действительно читается (и у вас загружен mod_rewrite)? –

+0

Я проверил файл httpd.conf и да, указав index.php. Я протестировал, чтобы проверить, читается ли файл htaccess, вставляя тарабарщину (в результате возникает внутренняя ошибка сервера - так что да, она читается), и да mod_rewrite загружается. – anniebabannie

0

Если вы используете Apache, посмотрите в файле конфигурации.

LoadModule rewrite_module модули/mod_rewrite.so

AllowOverride Все

+0

Да, обе эти линии находятся в моем httpd.conf файл. Я попробовал то, что предложил Джон Линь (ниже), но теперь я просто получаю «Запрещено. У вас нет разрешения на доступ/my_base_url/на этом сервере». – anniebabannie

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