Ошибка Codeigniter без входного файла

Я установил CI в subdirecotry www.siteb.com/rexona

Мой .htaccess внутри www.siteb.com/rexona:

<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /rexona #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] #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 #This last condition enables access to the images and css folders, and the robots.txt file #Submitted by Michael Radlmaier (mradlmaier) RewriteCond $1 !^(index\.php|images|robots\.txt|css) RewriteRule ^(.*)$ index.php/$1 [L] </IfModule> <IfModule !mod_rewrite.c> ErrorDocument 404 /index.php </IfModule> 

В config.php:

 $config['index_page'] = ''; $config['base_url'] = ''; $config['uri_protocol'] = 'AUTO'; 

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

Есть предположения? Благодарю.

Ваш uri_protocol должен быть настроен на что-то – по крайней мере, установить его в auto.

Ошибка, которую вы получаете, заключается в том, что PHP работает как CGI, а это означает, что вам нужно передать URL-адрес перезаписи на index.php?/$1 (обратите внимание на знак вопроса).

Godaddy хостинг, кажется, исправлено on.htaccess , сам он работает, меняя:

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

в

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

Ваш $config['uri_protocol'] не должен быть пустым. По умолчанию AUTO , передача пустой строки приведет к поломке основного URI-класса, который используется для маршрутизации ваших запросов через класс Router.

 /* |-------------------------------------------------------------------------- | URI PROTOCOL |-------------------------------------------------------------------------- | | This item determines which server global should be used to retrieve the | URI string. The default setting of 'AUTO' works for most servers. | If your links do not seem to work, try one of the other delicious flavors: | | 'AUTO' Default - auto detects | 'PATH_INFO' Uses the PATH_INFO | 'QUERY_STRING' Uses the QUERY_STRING | 'REQUEST_URI' Uses the REQUEST_URI | 'ORIG_PATH_INFO' Uses the ORIG_PATH_INFO | */ $config['uri_protocol'] = 'AUTO'; 

Как говорится в комментариях: «Если ваши ссылки не работают, попробуйте один из других вкусных вкусов» .
Пустая строка не является одним из этих вкусов, она в конечном итоге пытается читать из $_SERVER[''] , который обычно будет пустым.

Я получаю ту же ошибку в бесплатной учетной записи хостинга, разрешаю проблему, представленную jhon foo выше.

мой .htaccess

 RewriteBase /MY_SUBFOLDER_UNDER_HTML_DIRECTORY/ RewriteEngine on RewriteBase /mY_subfolder/ RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$0 [QSA,L] 

Эта работа прекрасна, большое спасибо!