Estoy desarrollando una pequeña aplicación web con CodeIgniter. Después de probar localmente fui a poner en mi servidor web para permitir que un par de personas de probar algunas de las características. Mientras navega por el sitio de recibir: –

404 de Página No Encontrada la página de error

Al ver que en mi máquina local todo lo que carga y funciona perfectamente.

Esto es lo que he subido a la public_html directorio:

application directory
system directory
assets directory (my assets for the site)
index.php

Todos aquellos que están en el public_html directorio. Como he dicho, no me dan CodeIgniters página de error 404, por lo que sí sé es que al menos viendo CodeIgniter. También probé cambiando el $config['base_url'], en el config.php, a mi URL. Mismo error al cambiar eso o dejarlo en blanco.
He comprobado mis rutas, y todos aquellos que parecen correctas. Todo carga bien cuando se navega en mi máquina local.

Yo también no soy de usar un .htaccess archivo en este momento

Sugerencias sobre lo que debe tratar?

Muchas gracias!

InformationsquelleAutor twigman08 | 2015-02-25

11 Comentarios

  1. 90

    Está utilizando MVC con OOPS Concepto. Así que hay algunas ciertas reglas.

    1) el nombre de la clase (es decir: el nombre del controlador) se debe comenzar con Letra mayúscula.

    por ejemplo: el nombre del controlador es ‘helado’. que debe ser ‘mececream’

    En localhost podría no ser obligatoria, pero en el servidor en el que se va a comprobar todas estas reglas, cosa que no puede detectar el nombre de la clase.

    • Sólo una nota: la nombre de la clase y nombre de archivo ambos deben ser mayúsculas (comenzar con una letra mayúscula). Así que si el nombre de la clase es ‘Helado’, el nombre del archivo debe ser «Icecream.php’ de lo contrario, CodeIgniter va a tirar un error 404.
    • No creo en el servidor comprueba todas estas reglas. Podría ser por el simple hecho de que el servidor se ejecuta en Linux, que es sensible a mayúsculas y minúsculas para los nombres de archivo…
    • 1+ guardar mi día
    • Este es el caso, también se debe verificar el controlador de archivos en el servidor, Porque a veces incluso ftp el archivo con el título en caso de que no va a reemplazar correctamente & la mejor manera es eliminar primero los controladores en el servidor & subir los archivos con nombre de archivo apropiado.
    • OMG solo salvó mi día
    • Sucedió conmigo. Yo estaba usando MacOS para el desarrollo, que tiene un insensible a mayúsculas-sistema de archivos por defecto, pero el servidor de producción fue en Linux. Arañado por la cabeza de casi un día.

  2. 12

    Yo tenía el mismo problema. El cambio de controlers primera letra en mayúsculas ayudado.

    • para mí también, ya esta resuelto el problema!
  3. 12

    Hay un número de cosas que usted puede comprobar aquí. Voy a ir sobre cada uno de ellos con usted.

    1,
    Cuando se muda a un servidor en vivo desde localhost(htdocs) que usted necesita para asegurarse de que la versión de PHP que está utilizando es compatible.

    Para probar esto:
    Crear un ‘index.php‘ archivo y agregue la siguiente línea.

    <?php phpinfo(); ?>

    Presione ‘Ctrl + F » y la búsqueda de «versión». Encontrará la versión de php. Puede ser necesario 5.3+ a características de la ayuda.

    2,
    Revise su config/config.php y comprobar su $config['base_url'] y $config['index_page'] captura de pantalla a continuación

    CodeIgniter: 404 Página No Encontrada en el Servidor en Vivo

    Les recomiendo poner nombre del sitio en la base de url ejemplo: ‘www.site.com/
    pero quitar el index.php para la limpieza.

    3,
    MÁS PROBABLE QUE LA RAZÓN PARA COMENZAR CON ESTE

    Lo mas probable es que el .archivo htaccess. Aquí está la mía Hecha por Elliot Haughton.
    Ponlo en tu directorio raíz y cambiar la línea 9 ‘RewriteBase /’ si es necesario.

    <IfModule mod_rewrite.c>
    RewriteEngine On
    # !IMPORTANT! Set your RewriteBase here and don't forget trailing and leading
    # slashes.
    # If your page resides at
    # http://www.example.com/mypage/test1
    # then use
    # RewriteBase /mypage/test1/
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]

    <IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin 
    ErrorDocument 404 /index.php

    (Asegúrese de utilizar las dos partes anteriores. El editor de la partió en dos, pero todo el código de arriba es uno .htaccess).

    Si nada de lo anterior funciona, me da un grito de vuelta y vamos a paso a través de ella.

    • Gracias por intentar ayudar. He probado todas las sugerencias y yo todavía estoy recibiendo errores. He probado con el base_url vacío, y también probé con la configuración de mi URL.
    • También, cuando me puse el .htaccess, ya no tengo CodeIgniters página de error, en lugar de que se convierta en un error interno del servidor. He intentado todo lo que podía pensar para la reescritura de la base. Este sitio está siendo cargado como un subdominio de otro sitio que tengo si que ayuda. También he subido otro CodeIgniter aplicación como un sub dominio que he creado par de meses y lo cargan perfectamente y funciona muy bien. Aunque cuando puedo subir esta el exacto la misma manera en que los errores que había estado describiendo….
  4. 11

    Me han resuelto este problema, por favor, acaba de hacer algunos cambios

    1 – todos los de la controladora nombre de la clase debe comenzar con letra mayúscula. me refiero a la primera letra de una clase debe ser de capital . por ejemplo tenemos controler con el nombre de clase de Páginas

    por lo que deben ser las páginas que las Páginas no

    2 – guardar el controlador de clase de Páginas como Pages.php no pages.php

    así que la primera letra debe ser de capital

    mismo para el modelo, el modelo de clase primera letra debe ser de capital y también ahorrar modelo de clase como Pages_model.php no page_model.php

    la esperanza de que esto va a resolver ur problema

    • después de cambiar el nombre de todos los archivos de clase incluidos los modelos y los archivos de la biblioteca.i.e sólo letras iniciales en Mayúsculas se empieza a trabajar. Muchas gracias.
  5. 5

    Me quedé con esta aprox un día me acaba de cambiar el nombre del archivo de nombre «nombre de archivo» con letra mayúscula y cambiar el nombre de la clase de controlador «Classname». y resolvió el problema.

    **class Myclass extends CI_Controller{}
    save file: Myclass.php**

    application/config/config.php

    $config['base_url'] = '';
  6. 3

    Resuelto el problema. Cambiar el nombre de la clase para hacer sólo la primera letra en mayúscula. así que si tienes algo como ‘Miclase’ cambia a ‘Miclase’. se aplican tanto el nombre de archivo y nombre de la clase.

  7. 3

    Lo que estoy haciendo en local y el servidor de producción de esta manera:


    Rutas:

    $route['default_controller']   = 'Home_controller';

    Archivos de nombres:

    • en controladores de carpeta: Home_controller.php
    • en modelos carpeta: Home_model.php
    • en vistas carpeta: Home.php

    Home_controller.php:

           class Home_controller extends CI_Controller {
    
               public function index(){
    
                  //loading Home_model
                  $this->load->model('Home_model');
    
                  //get data from DB
                  $data['db_data']  = $this->Home_model->getData();
    
                  //pass $data to Home.html
                  $this->load->view('Home', $data);
               }
           }

    Home_model.php:

           class Home_model extends CI_Model {
           ...
           }

    No debería haber más problemas con los casos más 🙂

  8. 1

    Intente agregar la siguiente línea en la carpeta de raíz index.php después de php comienza:

    ob_start();

    Esto funciona para mí.

  9. 0

    Por favor, compruebe la root/application/core/ archivos de la carpeta si usted ha usado alguna de MY_Loader.php, MY_Parser.php o MY_Router.php archivos.

    Si es así, pruebe mediante la eliminación de archivos desde la carpeta y compruebe si que hacen la diferencia. De hecho, acaba de limpiar esa carpeta con sólo mantener el valor predeterminado index.html archivo.

    He encontrado estos archivos es la causa del problema a la ruta correcta del Controlador de funciones.

    Espero que ayude!

  10. 0

    Yo era capaz de arreglar errores similares por cambiar

    http://ip-address/html/ci3-fire-starter/htdocs/index.php/

    sobre la application/config/config.php la línea 26.

Dejar respuesta

Please enter your comment!
Please enter your name here