Programación


Esto no es un tutorial de Mod rewrite, si no más bien de como realizar redirecciones 301 correctamente y sin perder la indexación que teniamos al reescribir las urls en nuestra web.

Si quieres aprender sobre Mod rewrite puedes visitar este escrito de Aeoris.

La mayoría de gente, cuando reescribe sus urls, cambia los enlaces de la web a estas, y se olvida de las anteriores páginas, grave error, ya que Google leerá las dos páginas y seguramente las tomará como contenido duplicado, con su correspondiente penalización. La forma de evitarlo es redireccionando la página antigua a la nueva, pero no de cualquier forma, si no dando el mensaje de Movida permanentemente (Moved Permanently), y el número de error 301.

Para realizar una redirección en PHP tenemos que añadir el siguiente código.

header("HTTP/1.1 301 Moved Permanently");
header('Location: http://www.web.com/url/destino.html');

Recueda que al enviar unas cabeceras, no se debe haber manado contenido anteriormente, a si que esto sería lo 1º que deberia de haber en el código fuente de la página (Antes incluso que o cualquier texto, incluso espacios en blancos).

Esto está muy bien si la página a la que enviamos la redirección no es la misma a la que se accede, la mayoría de las veces, sólo se cambian las URLs pero se mantienen los archivos, si ponemos esto en la página, se creará un bucle infinito donde siempre se manda la redirección a la misma página. Un ejemplo claro de esto sería el siguiente.

Con el .htaccess hacemos que al entrar en mi-nueva-pagina.html nos ejecute mipagina.php, pero deseamos que al entrar en mipagina.php nos mande a mi-nueva-pagina.html

.htaccess

RewriteEngine On
RewriteRule ^mi-nueva-pagina.html mipagina.php

mipagina.php

< ?php
if (substr($_SERVER['REQUEST_URI'], -3) == 'php') {
header("HTTP/1.1 301 Moved Permanently");
header('Location:
mi-nueva-pagina.html');
}
?>

En este simple código hacemos una comprobación de extensión, como nuestra nueva página es .html, y la antigua es php, solo con comprobar esto ya nos bastaría, si este no es tu caso tienes que inginartelas para saber cuando se entra por la dirección reescrita, una buena y fácil solución es meter una variable, quedando el rewrite rule de este modo:

RewriteRule ^mi-nueva-pagina.html mipagina.php?reescrita=true

Después simplemente es una comprobación de que la variable $_GET[’reescrita’] existe.

Esto es todo, cualquier duda o cosa que querais que aclare más, podeis dejarla en los comentarios.

Explicación a groso modo, sin entrar en detalles:

PHP es un lenguaje del lado Servidor, esto significa que se ejecuta en un servidor remoto. Al ejecutarse PHP crea una respuesta, que es enviada al Cliente, que normalmente accede con un Navegador, que es quien se encarga de coger la respuesta y “dibujarla”. Coge el HTML, JavaScript o lo que le mande el servidor y lo muestra en pantalla.

Como ya hemos dicho antes, JavaScript se ejecuta en el Cliente, ya que es enviado y ejecutado en el navegador. HTML es dibujado por el navegador en el navegador también.

esquema-servidor-cliente-php.gif

He hecho un pequeño esquema con las partes más importantes del proceso de programación de una aplicación y los pasos a seguir.

Fase de resolución del problema

  • Analisis y especificación: Entender el problema y lo que debe hacer la solución.
  • Algoritmo: Desarrollar una secuencia lógica de pasos que resuelve el problema
  • Comprobar: Seguir los pasos exactamente para ver si la solución es correcta

Fase de implementación

  • Solución (Programa): Traducir el algoritmo en un lenguaje de programación
  • Prueba: Ver que el programa funcióna según lo previsto.

Fase de mantenimiento

  • Uso: Usar el programa de forma normal

Importar un archivo .sql a una base de datos MySQL es una tarea muy sencilla si se sabe hacer correctamente.
La mayoría de personas que conozco suelen importar archivos mediante phpMyAdmin, la opción Importar, que no permite archivos de más de 2.048Kb (2 Mb). Por esta razón, cargar un archivo de más de 2 megas debe hacerse en varios trozos, siendo esta una labor bastante cansina.

Para ejecutar un .sql directamente, no existe ningún comando que lo haga, simplemente, hay que ejecutarlo. Abrimos un a línea de comandos y escribimos:

mysql -uUSUARIO -pPASSWORD BaseDeDatos < archivo.sql

De esta forma, cargaremos el archivo.sql en la base de datos BaseDeDatos. Para ello debe estar creada anteriormente la tabla.

Un pequeño truco que suelo usar para no tener que crearla, en el mismo .sql que quiero importar, añadir al comienzo las siguientes lineas

CREATE DATABASE `BaseDeDatos`;
USE `BaseDeDatos`;

De esta forma creamos y seleccionamos la base de datos y sólo deberemos indicarle el archivo sql.
mysql -uUSUARIO -pPASSWORD < archivo.sql

Después de una motivación por parte de WiZ por mejorar los menús pues me puse a ello, ahora al darle arriba o abajo con las teclas pues se marcan como seleccionado una opción u otra, algo es algo

Código fuente
Descargar ejecutable

Bueno, sigo con mi lento avance en el mundo de SDL, esta vez hay mezcla, porque empiezo a usar letras, pero no con TTF ni nada por el estilo, si no con una imagen con todas las letras que localizo su posición según su valor ASCII y coloco en el lugar, a partir de esto puedes crear unos menus, mas bien llamemosle listas. ^^

Código fuente
Descargar ejecutable

Después de hacer pruebas y tonterias en SDL, me dispuse a hacer un pong, y lo hice, aunque el pong original son 2 paletas, yo sólo he puesto 1, ya que es para 1 solo jugador vaya tonteria poner 2, rebota contra la pared y listo. Adjunto el juego para que lo probeis y el codigo fuente por si quereis verlo

Código fuente
Descargar juego

Después de haber empezado con C, practicar con sockets ¬¬, he empezado a usar SDL, y la verdad que me gusta mucho y al empezar no es dificil, y me motiva no como con los sockets que salian problemas por todos lados, ya he creado mi primer ejemplito, que es un rectángulo moviendose unos pixeles, espero hacer otras cosas pronto.

Pruebas con SDL

MusculaciónGlobal DomainsCoinAuctionCarrosUsadosMp3 Gratis
Crear FotologBuceo en JaveaContenidos WebJuegos gratisApuntar Web