Codeigniter - входной файл не указан - PullRequest
85 голосов
/ 25 мая 2011

Привет, я новичок в Codeigniter, я видел учебник по CI и просто пытался сделать простую вещь.Я скачал CI и добавил этот файл в каталог контроллера, но он не будет работать.

<?php

class site extends CI_Controller
{
    public function index()
    {
        echo "Hello World";
    }

    function dosomething()
    {
        echo "Do Something";
    }   
}    
?>

Когда я пытаюсь получить к нему доступ с помощью http: //..../index.php/ site Я получаю вывод ... "входной файл не указан" .... кстати, я назвал файл site.php

Ответы [ 5 ]

279 голосов
/ 25 октября 2012

Просто добавьте знак ? после index.php в файле .htaccess:

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

, и это будет работать!

53 голосов
/ 18 марта 2013

Хостинг Godaddy вроде исправлен на .htaccess, сам работает

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

до

RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
37 голосов
/ 25 мая 2011

Я нашел ответ на этот вопрос здесь ..... Проблема была в хостинге сервера ... Благодарю всех, кто пытался .... Надеюсь, что это поможет другимGodaddy Советы по установке

17 голосов
/ 22 ноября 2014

RewriteEngine, DirectoryIndex в файле .htaccess приложений CodeIgniter

Я только что изменил содержимое файла .htaccess и, как показано в следующем ответе links . И попытался обновить страницу (которая не работала, и не смог найти запрос к моему контроллеру), это сработало.

Тогда просто из-за моих сомнений я отменил изменения, которые я внес в мою .htaccess внутри моей папки public_html , в исходное содержимое .htaccess . Так что теперь это так (что изначально было):

DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA]

А теперь и это работает.

Подсказка: Похоже, что правила переписывания не были четко установлены в контексте сервера.

Моя файловая структура выглядит следующим образом:

/
|- gheapp
|    |- application
|    L- system
|
|- public_html
|    |- .htaccess
|    L- index.php

А в index.php я настроил следующие пути к системе и приложению:

$system_path = '../gheapp/system';
$application_folder = '../gheapp/application';

Примечание: при этом исходный код нашего приложения сначала становится скрытым для общественности.

Пожалуйста, если вы, ребята, что-то не так с моим ответом, прокомментируйте и исправьте меня! Надеюсь, новички сочтут этот ответ полезным.

Спасибо!

0 голосов
/ 01 октября 2018

Мой сайт размещен на MochaHost, мне было трудно настроить файл .htaccess, чтобы я мог удалить index.php из моих URL-адресов. Однако, после некоторого поиска в Google, я объединил ответ в этой теме и другие ответы. Мой последний рабочий файл .htaccess имеет следующее содержимое:

<IfModule mod_rewrite.c>
    # Turn on URL rewriting
    RewriteEngine On

    # If your website begins from a folder e.g localhost/my_project then 
    # you have to change it to: RewriteBase /my_project/
    # If your site begins from the root e.g. example.local/ then
    # let it as it is
    RewriteBase /

    # Protect application and system files from being viewed when the index.php is missing
    RewriteCond $1 ^(application|system|private|logs)

    # Rewrite to index.php/access_denied/URL
    RewriteRule ^(.*)$ index.php/access_denied/$1 [PT,L]

    # Allow these directories and files to be displayed directly:
    RewriteCond $1 ^(index\.php|robots\.txt|favicon\.ico|public|app_upload|assets|css|js|images)

    # No rewriting
    RewriteRule ^(.*)$ - [PT,L]

    # Rewrite to index.php/URL
    RewriteRule ^(.*)$ index.php?/$1 [PT,L]
</IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...