Foros del Web » Programando para Internet » PHP » CodeIgniter »

[SOLUCIONADO] mostrar metodo hola mundo con urls amigables

Estas en el tema de mostrar metodo hola mundo con urls amigables en el foro de CodeIgniter en Foros del Web. Hola: me interesa conocer el framework codeigniter. Mi primera tarea es hacer "Hola mundo" basado en un video tutorial realizando urls amigables con la ayuda ...
  #1 (permalink)  
Antiguo 08/07/2011, 09:52
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 11 meses
Puntos: 12
mostrar metodo hola mundo con urls amigables

Hola:

me interesa conocer el framework codeigniter. Mi primera tarea es hacer "Hola mundo" basado en un video tutorial realizando urls amigables con la ayuda de .htaccess evitando que se muestren los index.php, es decir mi controlador es:

hola_mundo.php
Código PHP:
<?php
class Hola_mundo extends CI_Controller {
    
    function 
hola_mundos()    {
        echo 
'Hola mundos metodo';
    }
    public function 
index()    {
        echo 
'Hola mundo index';
    }
}
?>
El routes.php
Código PHP:
$route['default_controller'] = "hola_mundo"
arregle mi config.php
Código PHP:
$config['base_url']    = 'http://localhost/InicioCI/';
$config['index_page'] = '';
$config['url_suffix'] = '.html'
y mi .htaccess
Cita:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /InicioCI/index.php/$1 [L]
</IfModule>
<IfModule mod_rewrite.c>
ErrorDocument 404 /ci2/index.php
</IfModule>
segun el video tutorial todo corre bien, pero ami:

http://localhost/InicioCI/ (Corre bien)

http://localhost/InicioCI/hola_mundo (No Corre)

http://localhost/InicioCI/hola_mundo/hola_mundos (No corre)

el error que me sale es:
¡Objeto no encontrado!
Error 404

La version del Codeigniter que probe fue en el 2.0.0 y el 2.0.2

una ayuda por favor
  #2 (permalink)  
Antiguo 08/07/2011, 14:54
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 8 meses
Puntos: 292
Respuesta: mostrar metodo hola mundo con urls amigables

Para empezAr el nombre del constructor debe coincidir con el de la clase (te sobra una letra) o bien usas la sintaxis de php5 de __construct();

Luego no toques Nada de configuracion sin saber porque metes la pata

En url_base no hace falta poner nada
__________________
Salu2!
  #3 (permalink)  
Antiguo 08/07/2011, 15:27
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 8 meses
Puntos: 292
Respuesta: mostrar metodo hola mundo con urls amigables

Otra cosa: index() no debes confundirlo con tu constructor

El constructor se llama siempre sea cual sea la accion (metodo del controller) y antes que cualquier otro metodo.

El index() se llama cuando no especificas una accion (metodo) en la url: tusitio.com/controlador/accion/parametros

Por otro lado no podes sobrecargargar el constructor sin primero cargar al padre:

Parent:__construct()
__________________
Salu2!

Última edición por Italico76; 08/07/2011 a las 16:29
  #4 (permalink)  
Antiguo 08/07/2011, 18:04
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 20 años
Puntos: 43
Respuesta: mostrar metodo hola mundo con urls amigables

Hola wilmer30 !

Revisa también que tengas habilitado el módulo mod_rewrite en el archivo httpd.conf, debe estar en los archivos de instalación de apache.

Un saludo y suerte !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #5 (permalink)  
Antiguo 08/07/2011, 21:07
 
Fecha de Ingreso: febrero-2011
Mensajes: 13
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: mostrar metodo hola mundo con urls amigables

Ya se me adelantaron pero igual voy a comentar; recién comencé con codeiniter me hice esta lista la cual verificaba en cada nuevo proyecto. El otro dia dure mas de 7 horas barado y lo unico que tenia que hacer era activar el rewrite_module.
Con esta lista no volvi a tener ningun problema.


Código PHP:
IMPORTANTE Verificar APACHE  “rewrite_module” este activo

// Verificar que las rutas del .htaccess esten correctas
1.    .htaccess

// En el archivo config.php que se encuentra en la carpeta Config verificar

2.    Confing/Config.php

    a
.    Base Site URL
        $config
['base_url']    = 'http://localhost/NetBeans/CodeIgniter/';

    
b.    Index File
        $config
['index_page'] = '';

    
c.    URL suffix
        $config
['url_suffix'] = '.html';
    
    
d.    Global XSS Filtering
        $config
['global_xss_filtering'] = TRUE;
    
// esta llave puede ser cualquier conjunto de caracteres yo lo hago con encriptacion md5
    
e.    Encryption KeyTRUE
        $config
['encryption_key'] = '29348c94a01758a3f2e3b6fee55ba3b1';
    
    
f.    Cross Site Request Forgery
        $config
['csrf_protection'] = TRUE;
    

3.    Confing/routes.php

4.    Confing
/autoload.php

    a
.    Auto-load Libraries
        
'database''session'

    
b.    Auto-load Helper Files
        
'url' 
Ademas de esto te envio mi .htaccess que me funciona bastante bien.

Código HTML:
Ver original
  1. <IfModule mod_rewrite.c>
  2.  
  3.     RewriteEngine On
  4.     RewriteBase /ci_proyecto/
  5.  
  6.     RewriteCond %{REQUEST_URI} ^system.*
  7.     RewriteRule ^(.*)$ /ci_proyecto/index.php?/$1 [L]
  8.  
  9.     RewriteCond %{REQUEST_URI} ^application.*
  10.     RewriteRule ^(.*)$ /ci_proyecto/index.php?/$1 [L]
  11.  
  12.     RewriteCond %{REQUEST_FILENAME} !-f
  13.     RewriteCond %{REQUEST_FILENAME} !-d
  14.     RewriteRule ^(.*)$ /ci_proyecto/index.php?/$1 [L]
  15.  
  16. ##### rewrite exceptions
  17.     RewriteCond $1 !^(index.php|css|js|img|robots.txt)
  18.     RewriteRule ^(.*)$ /ci_proyecto/index.php/$1 [L]
  19.  
  20. </IfModule>
  21.  
  22. <IfModule !mod_rewrite.c>
  23.     ErrorDocument 404 /ci_proyecto/index.php
  24. </IfModule>
  #6 (permalink)  
Antiguo 11/07/2011, 14:09
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 11 meses
Puntos: 12
Respuesta: mostrar metodo hola mundo con urls amigables

upss, tanto me la pase buscando, muchas gracias el modules/mod_rewrite.so de httpd.conf no estaba habilitado.

voy realizando pruebas, obviamente saliendo de ciertas normas mencionadas, creo que voyo a cometer muchos errores más para aprender.

Gracias a todos

Etiquetas: frameworks-y-php-orientado-a-objetos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:15.