Entrar Regístrate
 
URLs Amigables en Espacios web Miarroba
#1 · · Editado por Josepepe033

Apache ofrece la posibilidad de usar un módulo llamado mod_rewrite que nos permite crear URLs Amigables mediante expresiones regulares.

Pero no todos los servidores ofrecen esta posibilidad. Teniendo en cuenta que en los Espacios web de Miarroba no se permiten los ficheros .htaccess, no podemos utilizar el mod_rewrite para hacer URLs Amigables.

En su lugar, Miarroba ha incorporado en todos sus espacios un método alternativo para ello: el fichero friendly_urls.php.



FRIENDLY_URLS.PHP

Al crear un fichero llamado friendly_urls.php en la raíz del espacio web, todas las peticiones que no sean ficheros reales pasarán por ese archivo.

Es decir, si el fichero al que se hace la petición no existe, la petición se realiza a friendly_urls.php.

 

 

¿CÓMO FUNCIONA?

Imaginemos que tenemos un blog con URLs de la forma:

http://blog.webcindario.com/article/?id=123456

Y queremos crear URLs Amigables de la forma:

http://blog.webcindario.com/article/123456-titulo-del-articulo.html



La petición a la primera ruta iría al fichero index.php de la carpeta article, recogería la variable mediante GET, y mostraría el artículo correspondiente. En el segundo caso (suponiendo que no existe esa ruta) pasaría por friendly_urls.php, donde deberíamos tener algo como esto:

 

friendly_urls.php
<?php

// Recoger URI
$URI = $_SERVER["REQUEST_URI"];

// Expresión regular
$preg = "/\/article\/([0-9]+)([-a-z0-9]+)\.html/";

// Obtener Id
$id = preg_replace($preg, "$1", $URI);

// Incluir articulo (hay que modificar el archivo para no recoger el id mediante $_GET)
include("article/index.php");

?>

 

 

ERROR 404 PERSONALIZADO

Si creamos el fichero friendly_urls.php todas las peticiones a ficheros que no existan irán ahí, con lo cual la configuración del error 404 personalizado ya no tiene efecto. Tendremos que hacerlo nosotros.

Retomando el ejemplo anterior:

friendly_urls.php
<?php

// Recoger URI
$URI = $_SERVER["REQUEST_URI"];

// Expresión regular
$preg = "/\/article\/([0-9]+)([-a-z0-9]+)\.html/";

// Comprobar si la URI cumple la expresión regular
if (preg_match($preg, $URI)) {

    // Obtener Id
    $id = preg_replace($preg, "$1", $URI);

    // Incluir articulo
    include("article/index.php");

} else {

    // Cabecera de error 404
    header("HTTP/1.0 404 Not Found");

    // Incluir nuestro fichero de error personalizado
    include("error404.php");

}

?>


Josepepe033
Moderador del foro
Moderador del foro
Haz clic para ver el perfil del usuario
Mensajes: 2.736
Desde: 10/Ene/2009
· ·
ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Foro de soporte · Espacio WEB · General de espacio WEB
Opciones:
Versión imprimible del tema
Subscríbete a este tema
Date de baja de este tema
Ir al subforo:  
TU NO PUEDES Escribir nuevos temas en este foro
TU NO PUEDES Responder a los temas en este foro
TU NO PUEDES Editar tus propios mensajes en este foro
TU NO PUEDES Borrar tus propios mensajes en este foro
Ahora son las 05:59 UTC+02:00 DST
Temas similares
 I FotoPTemaMensajesÚltima respuesta
No Hay mensajes nuevosHaz clic para ver el perfil del usuario
usar mi blog de miarroba como noticias de web miarroba
Por: User 602944 · 28/Ago/2012, 13:04
429/Ago/2012, 16:17
NoSetup.org Ir al último mensaje del tema
El tema está cerradoHaz clic para ver el perfil del usuario
Tema chincheta
0Hoy, 01:00
[email protected] Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario715/Sep/2003, 20:11
chavp Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario229/Jul/2003, 04:14
JoRDiTu Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario1105/Sep/2002, 22:18
HeDa Ir al último mensaje del tema