Ver Mensaje Individual
  #9 (permalink)  
Antiguo 03/09/2009, 08:15
galax13a
 
Fecha de Ingreso: noviembre-2008
Ubicación: Medellin
Mensajes: 21
Antigüedad: 15 años, 5 meses
Puntos: 1
De acuerdo Respuesta: ¿Cómo esconder o cambiar una URL estilo MercadoLibre o FaceBook?

Cita:
Iniciado por NUCKLEAR Ver Mensaje
Primero, no revivas temas antiguos.
Segundo lo que quieres hacer y en el ejemplo puntual que expones usa .htaccess y url amigables(busca en google que toneladas de información)
En el caso de Wordpress tiene una tabla con las url y esta se asocia al id del post.
seria mas sencillo darme las especificaciones correctas del tema que se trata de permalink y la configuracion de mod_write de todos modos gracias por tu aporte y si como saberlo que es tema viejo o no es que acaso google sabe diferenciar si es viejo o no yo de mi parte no lose ademas si es tema viejo dame el post para ubicarme de todos modos para el que le sirba...

Es necesario tener en cuenta los prerrequisitos para poder hacer esto. Para este ejemplo voy a suponer que la aplicación la estás haciendo sobre el servidor Apache, y que estás programando en PHP+MySQL. Necesitas:

* Manejar la mayor parte del trabajo con el archivo index.php. Esto más que un requisito es un consejo. Cuando estés desarrollando aplicaciones en PHP es recomendable que la mayor parte del sistema tenga que ser procesado inicialmente por este archivo, el cual se encargará de manejar todas las peticiones y utilizar los módulos que se necesiten. Esto, por supuesto, NO quiere decir que TODO el código vaya dentro del archivo index.php; una buena práctica es separar el código en módulos y llamarlos con funciones como include o require.
* Es necesario tener instalado el mod_rewrite, el cual se utilizará desde un archivo .htaccess. El ModRewrite es un módulo para Apache que por lo general se configura (definir reglas) en el archivo httpd.conf, pero es posible poner una configuración ModRewrite en cualquier directorio de nuestro servidor web dentro del archivo .htaccess.
* Puesto que de acuerdo al string que pasemos en la URL se debe determinar qué hacer, es necesario hacer algo de esto:
o Hacer que dentro de la base de datos la llave primaria de la tabla a consultar sea una cadena de texto, ó
o Hacer otro campo en la tabla de MySQL aparte de la llave primaria


Código:
create database ejemplo;
create table contenidos(
d int(5) primary key auto_increment,
titulo varchar(50),
contenido varchar(1000),
slug varchar(50));
Luego creamos una carpeta dentro del htdocs de apache, en donde pondremos los archivos de nuestro ejempo (mkdir /opt/lampp/htdocs/ejemplo). Hecho esto, lo siguiente es crear el archivo .htaccess, en el cual indicaremos las reglas del ModRewrite. En nuestro ejemplo tenemos algo como esto:

Código:
# Esto es un comentario
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /ejemplo/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /ejemplo/index.php [L]
</IfModule>
Una explicación breve de este .htaccess:

* En los archivos .htaccess es posible hacer comentarios anteponiendo el simbolo numeral (almohadilla como dicen en España)
* <IfModule mod_rewrite.c>: Esta instrucción funciona como un if, que verifica si el ModRewrite está instalado.
* RewriteEngine On, activa el ModRewrite.
* RewriteBase /ejemplo/, asigna el directorio base donde trabajará el ModRewrite
* RewriteCond %{REQUEST_FILENAME} !-f y RewriteCond %{REQUEST_FILENAME} !-d, la instrucción RewriteCond funciona como una condición que en caso de ser verdadera hará que se ejecute una regla (RewriteRule) del ModRewrite. Funciona con expresiones regulares. En este caso lo que estamos verificando es si la petición se trata de un archivo (-f) o directorio (-d) que no (!) existe, en cuyo caso ejecuta la RewriteRule de abajo. Pero ¿para qué esto? Dado que las peticiones que hacemos usando URL bonitas no existen físicamente en el servidor, podemos aprovecharlas para indicar que dichas URL las manejará el archivo index.php, es decir, si por ejemplo hacemos una consulta como:
sitio.com/link-agradable
y en dicho servidor no existe ninguna carpeta o archivo que tenga el nombre link-agradable, el control de dicha petición se enviará al archivo index.php.
* RewriteRule . /ejemplo/index.php [L], ejecuta la regla que en este caso hace que el control de la aplicacion pase al archivo index.php, el cual se encargará de analizar la URL y realizar las operaciones adecuadas. La instrucción [L] hace que cualquier otra regla por debajo de esa linea no se cumpla.
* </IfModule>, cerramos nuestro if.

como aqui no puedo ponder contenido con hiperlink entonces les dejo la pagina donde sustraje la informacion para la continuacion del ejemplo :

******************************* casidiablo.net/permalinks-personalizados/

Última edición por galax13a; 03/09/2009 a las 08:21