Foros del Web » Administración de Sistemas » Apache »

[SOLUCIONADO] problema con .htaccess y url amigables

Estas en el tema de problema con .htaccess y url amigables en el foro de Apache en Foros del Web. hola gente, estoy recien empezando a armar url amigables con htaccess (disculpen el foro, lo puse en php porque no sabia donde podria ponerlo) estaba ...
  #1 (permalink)  
Antiguo 20/02/2013, 23:39
Avatar de alex_dh  
Fecha de Ingreso: septiembre-2011
Ubicación: Kreuzberg
Mensajes: 235
Antigüedad: 12 años, 7 meses
Puntos: 14
problema con .htaccess y url amigables

hola gente, estoy recien empezando a armar url amigables con htaccess (disculpen el foro, lo puse en php porque no sabia donde podria ponerlo)

estaba armando las url para un perfil, y me funcionaron bien:

Código:
RewriteRule ^([a-zA-Z0-9-_]+)$ perfil.php?user=$1 [QSA,L]
y se obtendria: miweb.com/usuario

lo que yo tengo, son tambien secciones para cada perfil... como publicaciones, amigos, etc.

y me gustaria hacer la url algo asi: miweb.com/usuario/seccion

alguien me podria dar una mano con esto?
__________________
Avanzado desarrollador HTML, CSS y programador PHP, MYSQL, JAVASCRIPT

=========CALLEJEROS INOCENTES=========
  #2 (permalink)  
Antiguo 21/02/2013, 02:59
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: problema con .htaccess y url amigables

Buenas!

Yo se lo básico de rewriteRule, pero te diré cómo lo armo yo:

Código:
Options +FollowSymlinks
RewriteEngine on

RewriteRule ^(.+)$ http://www.paginaweb.com/perfil?user=$1 [NC]
Luego tendrías que añadir las secciones, como (por ejemplo):

Código:
RewriteRule ^(.+)/(.+),(.+)$ http://paginaweb.com/perfil?user=$1&seccion=$2&subseccion=$3 [NC]
Simplemente "concatenas" las expresiones regulares, y luego las enlazas con $n.

Yo he puesto una "," entre la sección y sub-sección, pero podrías poner cualquier otro caracter...

Saludos!

(iría en el foro de SEO)
  #3 (permalink)  
Antiguo 21/02/2013, 10:49
Avatar de alex_dh  
Fecha de Ingreso: septiembre-2011
Ubicación: Kreuzberg
Mensajes: 235
Antigüedad: 12 años, 7 meses
Puntos: 14
Respuesta: problema con .htaccess y url amigables

Cita:
Iniciado por DoHITB Ver Mensaje
Buenas!

Yo se lo básico de rewriteRule, pero te diré cómo lo armo yo:

Código:
Options +FollowSymlinks
RewriteEngine on

RewriteRule ^(.+)$ http://www.paginaweb.com/perfil?user=$1 [NC]
Luego tendrías que añadir las secciones, como (por ejemplo):

Código:
RewriteRule ^(.+)/(.+),(.+)$ http://paginaweb.com/perfil?user=$1&seccion=$2&subseccion=$3 [NC]
Simplemente "concatenas" las expresiones regulares, y luego las enlazas con $n.

Yo he puesto una "," entre la sección y sub-sección, pero podrías poner cualquier otro caracter...

Saludos!

(iría en el foro de SEO)
no me funcionó
__________________
Avanzado desarrollador HTML, CSS y programador PHP, MYSQL, JAVASCRIPT

=========CALLEJEROS INOCENTES=========
  #4 (permalink)  
Antiguo 21/02/2013, 11:40
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 2 meses
Puntos: 43
Respuesta: problema con .htaccess y url amigables

Buenas,

Prueba asi:

RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /index.php?controller=$1&action=$2&id=$3 [L]


Otra forma de hacerlo es:

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

lo que tienes que hacer despues

Código PHP:
$path trim(parse_url($_GET['route'], PHP_URL_PATH), "/");
$path preg_replace('/[^a-zA-Z0-9]\//'""$path);
list(
$user,$seccion,$subseccion) = explode('/',$path,3); 

Saludos
__________________
"No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo."
"El problema no es no saber, sino no saber quién sabe"
..::Con Karma se piensa mejor::..
  #5 (permalink)  
Antiguo 21/02/2013, 11:47
Avatar de alex_dh  
Fecha de Ingreso: septiembre-2011
Ubicación: Kreuzberg
Mensajes: 235
Antigüedad: 12 años, 7 meses
Puntos: 14
Respuesta: problema con .htaccess y url amigables

Cita:
Iniciado por rodno Ver Mensaje
Buenas,

Prueba asi:

RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /index.php?controller=$1&action=$2&id=$3 [L]


Otra forma de hacerlo es:

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

lo que tienes que hacer despues

Código PHP:
$path trim(parse_url($_GET['route'], PHP_URL_PATH), "/");
$path preg_replace('/[^a-zA-Z0-9]\//'""$path);
list(
$user,$seccion,$subseccion) = explode('/',$path,3); 

Saludos
no me funciona, yo tengo que convertir perfil.php?user=$1&item=$2

en /user/item
__________________
Avanzado desarrollador HTML, CSS y programador PHP, MYSQL, JAVASCRIPT

=========CALLEJEROS INOCENTES=========
  #6 (permalink)  
Antiguo 21/02/2013, 11:56
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 2 meses
Puntos: 43
Respuesta: problema con .htaccess y url amigables

Buenas,

Supongo yo que ya tienes el mod_rewrite activada verdad

Saludos
__________________
"No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo."
"El problema no es no saber, sino no saber quién sabe"
..::Con Karma se piensa mejor::..
  #7 (permalink)  
Antiguo 21/02/2013, 12:20
Avatar de alex_dh  
Fecha de Ingreso: septiembre-2011
Ubicación: Kreuzberg
Mensajes: 235
Antigüedad: 12 años, 7 meses
Puntos: 14
Respuesta: problema con .htaccess y url amigables

Cita:
Iniciado por rodno Ver Mensaje
Buenas,

Supongo yo que ya tienes el mod_rewrite activada verdad

Saludos
sipi
__________________
Avanzado desarrollador HTML, CSS y programador PHP, MYSQL, JAVASCRIPT

=========CALLEJEROS INOCENTES=========
  #8 (permalink)  
Antiguo 21/02/2013, 12:58
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 2 meses
Puntos: 43
Respuesta: problema con .htaccess y url amigables

Buenas,

Yo las estoy trabajo como te comente en la 2 Opcion, y a la hora de redireccionar

lo que hago esto :

http://localhost/myapp/user/edit/1

Saludos
__________________
"No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo."
"El problema no es no saber, sino no saber quién sabe"
..::Con Karma se piensa mejor::..
  #9 (permalink)  
Antiguo 21/02/2013, 20:52
Avatar de alex_dh  
Fecha de Ingreso: septiembre-2011
Ubicación: Kreuzberg
Mensajes: 235
Antigüedad: 12 años, 7 meses
Puntos: 14
Respuesta: problema con .htaccess y url amigables

Cita:
Iniciado por rodno Ver Mensaje
Buenas,

Yo las estoy trabajo como te comente en la 2 Opcion, y a la hora de redireccionar

lo que hago esto :

http://localhost/myapp/user/edit/1

Saludos
yo estaba usando esto, pero no se como adapatarlo a lo que tengo que hacer ahora

RewriteRule ^([a-zA-Z0-9-_]+)$ perfil.php?user=$1 [QSA,L]
__________________
Avanzado desarrollador HTML, CSS y programador PHP, MYSQL, JAVASCRIPT

=========CALLEJEROS INOCENTES=========
  #10 (permalink)  
Antiguo 22/02/2013, 02:55
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: problema con .htaccess y url amigables

Hola!

No se porque no te funciona... las líneas que yo uso funcionan en mi hosting...

es decir, debería servirte algo así:

Código:
RewriteRule ^(.+)/(.+)$ http://paginaweb.com/perfil?user=$1&item=$2
Yo seguí este manual:

Aquí

¿Tienes el FollowSymlinks?

Saludos
  #11 (permalink)  
Antiguo 22/02/2013, 16:35
Avatar de alex_dh  
Fecha de Ingreso: septiembre-2011
Ubicación: Kreuzberg
Mensajes: 235
Antigüedad: 12 años, 7 meses
Puntos: 14
Respuesta: problema con .htaccess y url amigables

Cita:
Iniciado por DoHITB Ver Mensaje
Hola!

No se porque no te funciona... las líneas que yo uso funcionan en mi hosting...

es decir, debería servirte algo así:

Código:
RewriteRule ^(.+)/(.+)$ http://paginaweb.com/perfil?user=$1&item=$2
Yo seguí este manual:

Aquí

¿Tienes el FollowSymlinks?

Saludos
ahi me sirvió!!! usé esto:

RewriteRule ^([a-zA-Z0-9-_]+)/([a-zA-Z0-9-_]+)$ perfil.php?user=$1&item=$2
__________________
Avanzado desarrollador HTML, CSS y programador PHP, MYSQL, JAVASCRIPT

=========CALLEJEROS INOCENTES=========
  #12 (permalink)  
Antiguo 01/07/2013, 20:23
Avatar de atiperukevin  
Fecha de Ingreso: junio-2013
Ubicación: Peru
Mensajes: 5
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: problema con .htaccess y url amigables

Hola Comunidad como están, entrando por primera vez a esta magnífica comunidad, llevo semanas sin dar solución a un problema, es para la página de la empresa donde trabajo, estoy tratando de crear una URLs amigable para la web de la empresa donde trabajo, la verdad no la logro.
La página esta en php, cada página se llama con una función get asociado cada uno asociado con su título
Estas es una url no amigable http://localhost/pacific/?body=quienessomos
Quiero una urls amigable .

1.- http://localhost/nosotros/quienessomos ...
2.- http://localhost/servicios/comunicacion-estrategica...
3.- http://localhost/staff/nuestro-equipo...
4.- http://localhost/publicaciones/publicaciones...

...es decir debe estar asociado con su respectivo menú


<title>Pacific:
<?php
switch($_GET['body'])
{
case quienessomos:
{
echo 'Quienes somos';
break;
}
case pensamiento:
{
echo 'Pensamiento ';
break;
}
case responsabilidad:
{
echo 'Responsabilidad ';
break;
}

}
?>
</title>

Función del menú con se llama cada uno…

<ul>
<li><a href="?body=quienessomos" class="MenuBarItemSubmenu">QUI&Eacute;NES SOMOS</a></li>
<li><a href="?body=pensamiento" class="MenuBarItemSubmenu">PENSAMIENTO </a></li>
<li><a href="?body=responsabilidad" class="MenuBarItemSubmenu">RESPONSABILIDAD </a></li>
<li><a href="?body=pactoglobal" class="MenuBarItemSubmenu">APOYAMOS </a></li>
<li><a href="?body=marca" class="MenuBarItemSubmenu">MARCA </a></li>
</ul>


El cuerpo donde se muestra es la siguiente.

<td align="center" class="texto">
<font face="Arial">
<?php
if($_GET["body"]==NULL)
{
include("home-js.php");
}
else
{
include("".$_GET["body"].".php");
}
?>
</font></td>

La página web con URLs no amigable es http://pacificlatam.com/?body=quienessomos
El archivo .htaccess es


El código del .htaccess que estoy probando es la siguiente, no se por que no funciona.


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond % !-f
RewriteCond % !-d
RewriteRule . /index.php [L]
RewriteRule ^([^/]*)\.html$ /?body=$1 [L]
</IfModule>

No sé por qué no funciona por favor ayúdenme.

Por favor me pueden ayudar a crear el archivo .htaccess para una URLs amigable, les estaré agradecido a cada de Uds.

Última edición por atiperukevin; 04/07/2013 a las 21:55

Etiquetas: amigables, htaccess, php, url
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:36.