Codeigniter - ningún archivo de entrada especificado


86

Soy un principiante en Codeigniter y vi un tutorial de CI y solo estaba tratando de hacer algo simple. Descargué el CI y agregué este archivo al directorio del controlador, pero no funcionará.

<?php

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

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

Cuando intento acceder a él usando http: //..../index.php/site , obtengo el resultado ... "no se ha especificado ningún archivo de entrada" ... por cierto, llamé al archivo site.php


Intente revisar este enlace y vea si soluciona el problema.
Vap0r

No, no ayuda gracias por el esfuerzo
koool

Respuestas:


291

Solo agregue el ? firmar después de index.php en el archivo .htaccess:

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

¡y funcionaría!


Para mí, esto sirve como redireccionamiento 301 y termino con /? / En la URL.
Ade

@Ali Mohamed, ¿cuál de los archivos htaccess agrega esta línea? Lo intenté pero no tuvo ningún efecto
Bahdeng

1
@Bahdeng, debe colocar este fragmento en el archivo .htaccess en el directorio de su proyecto.
Ali Mohamed

cambie la línea anterior de acuerdo con el directorio de su aplicación, como si su aplicación no está en el directorio raíz, escriba el siguiente código en lugar de la línea anteriorRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy

1
@NSGodMode que estaría en el directorio raíz de codeigniter además de index.php
Ali Mohamed

58

El hosting de Godaddy parece arreglado .htaccess, yo mismo está funcionando

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

a

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

cambie la línea anterior de acuerdo con el directorio de su aplicación, como si su aplicación no está en el directorio raíz, escriba el siguiente código en lugar de la línea anteriorRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy

Me está obteniendo la página 404 no encontrada con CI 3
Nipun Tyagi

38

Encontré la respuesta a esta pregunta aquí ... El problema era el servidor de alojamiento ... Agradezco a todos los que lo intentaron ... Espero que esto ayude a otros

Consejos de instalación de Godaddy


cambie la línea anterior de acuerdo con el directorio de su aplicación, como si su aplicación no está en el directorio raíz, escriba el siguiente código en lugar de la línea anteriorRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy

17

RewriteEngine, DirectoryIndex en el archivo .htaccess de las aplicaciones CodeIgniter

Acabo de cambiar el contenido del archivo .htaccess y, como se muestra en los siguientes enlaces, respondo. Y traté de actualizar la página (que no funcionó y no pudo encontrar la solicitud a mi controlador) funcionó.

Luego, solo por mi duda, deshice los cambios que hice en mi .htaccess dentro de mi carpeta public_html de nuevo al contenido original .htaccess . Así que ahora es como sigue (que originalmente era):

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]

Y ahora también funciona.

Sugerencia: parece que antes de que las reglas de reescritura no se hayan configurado claramente dentro del contexto del servidor.

Mi estructura de archivos es la siguiente:

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

Y en el index.phphe configurado las siguientes rutas al sistema y la aplicación:

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

Nota: al hacerlo, el código fuente de nuestra aplicación se oculta al público al principio.

Por favor, si encuentran algo incorrecto en mi respuesta, comenten y corrijanme nuevamente.
Espero que los principiantes encuentren útil esta respuesta.

¡Gracias!


1

Mi sitio está alojado en MochaHost, tuve dificultades para configurar el archivo .htaccess para poder eliminar el index.php de mis URL. Sin embargo, después de buscar en Google, combiné la respuesta en este hilo y otras respuestas. Mi archivo .htaccess de trabajo final tiene el siguiente contenido:

<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>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.