Pregunta

Descargué un script PHP escrito usando CodeIgniter. Cuando lo ejecuto desde Localhost, al ir a la carpeta de administración, muestra a Localhost nuevamente. También cuando se ejecuta desde mi host web, muestra un error de servidor interno 500.

Ejecuto el sitio desde http: // localhost/myproj Funciona. Luego, cuando intento ir a la página de administración que está en http: // localhost/myproj/administrador, ofrece un error de servidor interno 500.

Leí aquí que esto podría deberse a un código incorrecto en el archivo .htaccess. Este es mi presente .htaccess

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [L,R=301]

RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]

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

# Without mod_rewrite, route 404's to the front controller
ErrorDocument 404 /index.php

Por favor, ayúdame. Sé que podría ser un problema muy pequeño, pero no puedo encontrar el error.

¿Fue útil?

Solución

El problema con 500 errores (con CodeIgniter), con diferentes configuraciones de Apache, muestra un error de 500 cuando hay un error con la configuración de PHP.

Así es como puede activar el error 500 con CodeIgniter:

  1. Error en script (configuraciones erróneas de PHP, paquetes faltantes, etc.)
  2. PHP "Errores fatales"

Verifique sus registros de errores de Apache, debe haber información interesante allí.

Otros consejos

En caso de que alguien más se tope con este problema, heredé un proyecto CodeInigniter anterior y tuve muchos problemas para instalarlo.

Perdí un montón de tiempo tratando de crear una instalación local del sitio y probé todo. Al final, la solución fue simple.

El problema es que las versiones más antiguas de CodeIgniter (como 1.7 y menos), no funcionen con PHP 5.3. La solución es cambiar a PHP 5.2 o algo más antiguo.

Estás tratando de eliminar index.php de la URL de su sitio, ¿correcto?

Intenta configurar tu $config['uri_protocol'] a REQUEST_URI en vez de AUTO.

Eliminar el comentario en httpd.conf (archivo de configuración de Apache):

LoadModule rewrite_module modules/mod_rewrite.so 

Pruebe esto en su archivo .htaccess:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >

Cada vez que ejecuto Codeigniter en un subdirectorio, configuro el RewriteBase lo. Intenta configurarlo como /myproj/ en vez de /.

Probablemente esto ya no sea relevante para este hilo, pero con suerte es útil para alguien. He tenido 500 errores durante la última hora, ya que tuve un controlador que devolviera una matriz no compatible con la versión PHP ejecutada en mi servidor (horrible). Parece trivial pero tuvo las características de un error CodeInigniter.

Tuve que usar:

class emck_model extends CI_Model {

    public function getTiles(){

        return array(...);

    }

} 

En vez de

class emck_model extends CI_Model {

    public function getTiles(){

        return [...];

    }

}

Salud

Sé que llego tarde, pero esto ayudará a alguien.

Compruebe si el motor de reescritura es activado.

Si no, habilite Reescribir el motor y reiniciar el servidor.

sudo a2enmod rewrite
sudo service apache2 restart

Si la versión 2.5 de WampServer, cambie la configuración de Apache como

httpd.conf (archivo de configuración de Apache):De

#LoadModule rewrite_module modules/mod_rewrite.so** 

Para, eliminar el #

LoadModule rewrite_module modules/mod_rewrite.so** 

Esto funciona bien para mi

Esto funciona bien para mi

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >

Asegúrate de tu raíz index.php El archivo tiene el permiso correcto, su permiso debe ser 0755 o 0644

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top