Codeigniter - nenhum arquivo de entrada especificado


86

Sou um iniciante no Codeigniter e vi um tutorial de CI e estava apenas tentando fazer uma coisa simples. Baixei o CI e adicionei esse arquivo ao diretório do controlador, mas não funcionou.

<?php

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

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

Quando tento acessá-lo usando http: //..../index.php/site , obtenho a saída ... "nenhum arquivo de entrada especificado" .... a propósito, chamei o arquivo site.php


Experimente verificar este link e veja se ele corrige o problema.
Vap0r

Não ajuda, obrigado pelo esforço
koool

Respostas:


291

Basta adicionar o ? assine após index.php no arquivo .htaccess:

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

e funcionaria!


Para mim, isso serve um redirecionamento 301 e acabo com /? / Na URL.
Ade

@Ali Mohamed, qual arquivo htaccess você adiciona a esta linha? Tentei, mas não surtiu efeito
Bahdeng

1
@Bahdeng você precisa colocar este trecho no arquivo .htaccess no diretório do seu projeto.
Ali Mohamed

mude a linha acima de acordo com o diretório do seu aplicativo, como se seu aplicativo não estivesse no diretório raiz, escreva o código a seguir no lugar da linha acimaRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy

1
@NSGodMode que estaria no diretório raiz do codeigniter além de index.php
Ali Mohamed

58

Godaddy hosting parece consertado .htaccess, eu mesmo está funcionando

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

para

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

mude a linha acima de acordo com o diretório do seu aplicativo, como se seu aplicativo não estivesse no diretório raiz, escreva o seguinte código no lugar da linha acimaRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy

Está me obtendo a página 404 não encontrada com CI 3
Nipun Tyagi

38

Encontrei aqui a resposta a esta questão ..... O problema era o servidor de alojamento ... Agradeço a todos que tentaram .... Espero que ajude outras pessoas

Dicas de instalação do Godaddy


mude a linha acima de acordo com o diretório do seu aplicativo, como se seu aplicativo não estivesse no diretório raiz, escreva o código a seguir no lugar da linha acimaRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy

17

RewriteEngine, DirectoryIndex no arquivo .htaccess de aplicativos CodeIgniter

Acabei de alterar o conteúdo do arquivo .htaccess e como mostrado nos links a seguir responda. E tentei atualizar a página (que não funcionou e não consegui encontrar a solicitação para o meu controlador) funcionou.

Então, apenas por causa da minha dúvida, desfiz as alterações que fiz no meu .htaccess dentro da minha pasta public_html de volta ao conteúdo .htaccess original . Portanto, agora é o seguinte (que era originalmente):

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]

E agora também funciona.

Dica: parece que antes as Regras de reescrita não foram claramente configuradas no contexto do servidor.

Minha estrutura de arquivos é a seguinte:

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

E no index.phpeu configurei os seguintes caminhos para o sistema e o aplicativo:

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

Nota: ao fazer isso, o código-fonte do nosso aplicativo fica oculto ao público em primeiro lugar.

Por favor, se vocês acharem algo errado com minha resposta, comente e me corrija novamente!
Espero que os iniciantes considerem esta resposta útil.

Obrigado!


1

Meu site está hospedado no MochaHost, tive dificuldade para configurar o arquivo .htaccess para que eu possa remover o index.php de meus urls. No entanto, depois de pesquisar no Google, combinei a resposta deste tópico com outras respostas. Meu arquivo .htaccess final de trabalho tem o seguinte conteúdo:

<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>
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.