AddThis Feed Button
AddThis Social Bookmark Button
IMGP1165
IMGP1166
IMGP1143
IMGP1144
IMGP1145
IMGP1146
IMGP1147
IMGP1148
IMGP1149
IMGP1150
Categories

This Month Last Year

Julio 2008
L M X J V S D
« Jun «-»  
 123456
78910111213
14151617181920
21222324252627
28293031  
links
09
May

Redirigir trafico con Apache y .htaccess

apache


Via
Feed

Juanjo Navarro y su nuevo proyecto Recortex (un repositorio público de código para subir y compartir tus funciones, procedimientos y trucos de programación) recordé que me faltaba poner una regla al Apache para que redireccionara el tráfico desde http://melkorcete.com hasta http://www.melkorcete.com.

Para ello necesitáis tener acceso al .htaccess de vuestro hosting o crearlo si no existe, y no todos los servicios de alojamiento gratuitos permiten esto.

Lo primero creáis un htaccess.txt con estas líneas (con vuestro dominio claro):



RewriteEngine On
RewriteCond %{HTTP_HOST} ^melkorcete\\.com$ [NC]
RewriteRule ^/?(.*)$ http://www.melkorcete.com/$1 [R=permanent,L]

Si no tenéis acceso al config del Apache podéis mandar un email al administrador y tratar de que os lo haga el, aunque no os aseguro que os lo permita. La prueba perfecta para saber si todo está bien, es tratar de acceder sin las WWW.

Este redireccionamiento no se hace por estética ni mucho menos, si no para evitar que se pierda posicionamiento en buscadores (como el Pagerank™ de Google o el Rank de Technorati) al dividir el trafico y las paginas visitadas y enlazadas entre las dos direcciones. Al unificarlas con esta simple regla se soluciona de una manera limpia y clara.


19
Abr

ServiceManager beta

PHP
Después de muchos días sin poder postear por diversos motivos (primero router que no sincroniza en días, luego se me murió el O.S. y luego la constante acumulación de trabajo en el curro) vuelvo y con sorpresas.

Acabo de terminar una aplicación (en su primera beta) que os ayudara a gestionar los Services de los Servidores más habituales. En esta primera versión añadí Apache, MySQL (en este articulo tenéis como instalarlo como un servicio, ya que por defecto no lo hace), SQL Server y el IIS.

La aplicación es sencilla y practica. Un icono en la barra de tareas que tiene un menú contextual que carga con las opciones disponibles según los servers que tengáis instalados. Desde ahí podréis detener o iniciar cualquiera de ellos con un simple click.

También incorporé una opción para que arranque automáticamente con Windows si se desea.

Requiere el Framework de .NET ya que esta programado en C# pero podéis bajarlo gratuitamente desde el enlace que os dejo aquí. Si tenéis alguna sugerencia ya sabéis donde encontrarme.

Framework 1.1 : descargar.

ServiceManager : Descargar.


14
Abr

HowTo : Instalación de AMP

Para los no iniciados, AMP se le denomina al conjunto que forman Apache, PHP y MySQL. La instalación es muy sencilla, no nos llevara más de unos minutos. Para empezar os dejo los links de descarga (Yo utilizo estas versiones, no uso aún Apache2, PHP5 ni MySQL5).

Apache : descarga gratuita.

PHP : descarga gratuita.

MySQL : descarga gratuita.

Instalación PHP:

PHP
Con diferencia la más sencilla de las tres instalaciones. Se descarga el archivo comprimido, mismamente en c:\\php\\, se copia el archivo php4ts.dll de c:\\php\\ a c:\\%SYSTEMROOT%\\SYSTEM32 (ya sea WINNT o WINDOWS), y finalmente se renombra el php.ini-dist a php.ini y se coloca en c:\\%SYSTEMROOT%\\ . Y listo, aunque como añadido también debéis saber que para conectar PHP con algunas SBD\’s es necesario descomentar en el php.ini la dll de conexión. Por ejemplo en ORACLE: extension=php_oci8.dll

Instalación Apache:

Apache
Esta vez dispondremos de un ejecutable (tras descomprimir si estuviera comprimido), solo tendremos que ejecutarlo y rellenar tres casillas. Network Domain -> 127.0.0.1 ; Server Name -> 127.0.0.1 ; Administrator\'s Email -> sumail@suproveedor.com. Después seleccionamos la instalación completa y listo. Por defecto os quedará instalado como un servício y con arranque automático. Para modificar esto Inicio / Ejecutar / services.msc , seleccionáis el Apache y doble click. Y ponéis la configuración que queráis. Además del Apache os agrega un acceso directo a Arrancar, Reiniciar y Parar el servicio de Apache. El de reiniciar es muy útil, ya que cada cambio que se haga en la configuración requerirá un reinicio.

El primero de estos cambios será añadirle la carga del módulo de PHP (para que el Apache pueda ejecutar el código PHP). Basta con abrir desde el menú de inicio el archivo httpd.conf que viene con el propio Apache y añadir abajo del todo estas dos líneas:


LoadModule php4_module c:/php/sapi/php4apache.dll
AddType application/x-httpd-php .php

También es recomendable crear una carpeta para el contenido del server (por ejemplo: "c:\\apache"), y cambiar el parámetro DocumentRoot "c:\\apache\\".

Ahora reiniciar el Servidor Apache con el acceso directo mismamente y aseguraros de tener abierto el puerto 80 (a no ser que queráis cambiarlo, también en el php.ini, la opción Listen: 80) para que tengan acceso a vuestro server desde fuera de la red local.

Para hacer una prueba podéis usar cualquiera de los clásicos:


<?php
phpinfo();
?>

<?php
echo "Hello World!";
?>

Si entráis al localhost directamente debería deciros el ya mítico mensaje:

“¡Funcionó! ¡El Servidor de Red Apache ha sido instalado en ese sitio!", y luego si ejecutáis el código, deberá mostraros el mensaje de Hola Mundo, o la información del sistema.

Instalación MySQL:

MySQL

Ahora nos toca finalizar con la instalación del AMP, y es el turno del SBD MySQL. Para la instalación, descomprimimos el archivo descargado, ejecutamos el setup.exe y les decimos que instale mismamente en c:\\mysql\\ (sobre todo de cara a evitar posteriores cambios en la configuración). Tras la instalación, lo más útil para su posterior manejo, es convertir el servidor en un servicio de windows. Para ello basta con ejecutar: c:\\mysql\\bin\\mysqld --install . Así pues, podéis crearos unos bat para manejarlo simplemente con las órdenes net start mysql para arrancarlo y net stop mysql para detenerlo.

Pues solo con estos sencillos pasos tendréis instalado todo lo necesario para empezar a programar en PHP sobre Apache con bases de datos de MySQL. A disfrutar y no os perdáis algunos trucos que pondre por aquí.


27
Mar

Urls bonitas con HTACCESS y PHP (en Apache)

Normalmente cuando pasamos variables a una pagina lo hacemos del modo “index.php?cat=restaurante” lo cual ademas de no quedar muy bonito si aumentamos mucho en numero de variables podemos tener el problema de que google no indexe correctamente algunas paginas.

Para ellos podemos definir en un fichero htaccess que todas las rutas pasadas a nuestra URL se pasen a un archivo, por ejemplo para convertir “http://wwww.midominio.com/index.php?cat=restaurante” en “http://www.midominio.com/cat/restaurante”.

El código en cuestión:



RewriteEngine On
RewriteBase /milbodas/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /milbodas/index.php [L]



Aquí obtenemos la parte de la URL que nos interesa. Destacar que WEBROOT es una constate que define la parte de la ruta que no es significativa para nosotros, ej: “http://www.midominio.com/”


$ruri = substr($_SERVER['REQUEST_URI'], strlen(WEBROOT));
if(substr($ruri, -1) == ‘/’){$ruri=substr($ruri, 0, -1);}
$urlparse =explode( ‘/’, $ruri);
$vars=convertArrayKeys($urlparse);




Con esto extraemos la parte de la URL que nos interesa en la cadena $urlparse

La función convertArrayKeys es un metodo propio par convertir esa cadena en un Array clave=>valor para facilitar el uso de las variables.


function convertArrayKeys($arrayOrigen){
$arrayRemplazo = Array;
$icount =count($arrayOrigen);
if ($icount>1){
if (($icount%2)==0){ // elementos pares
for ($i=0;$i<$icount;$i+=2){
$arrayRemplazo[$arrayOrigen[$i]]=$arrayOrigen[$i+1];
}
}else{ // elementos impares
for ($i=0;$i<($icount-1);$i+=2){
$arrayRemplazo[$arrayOrigen[$i]]=$arrayOrigen[$i+1];
}
}
}
return $arrayRemplazo;
}




Esa función nos devolverá la cadena ej. “cat/restaurante/pagina/1″ en el formato ej: Array(”cat”=>”restaurante”,”pagina”=>”1″);

y con esto solo queda usar nuestra variable $vars obtenida como si de la variable global $_GET se tratara, con la salvedad de que no es una superglobal (hay que declararla “global” en los métodos para poder tener acceso a ella)