Redirección 301

Redirección 301

El servidor Apache dispone de la posibilidad de generar redirecciones «amiglables» para los buscadores. De este modo si un dominio o una URL la tenemos que eliminar o simplemente ya no está disponible podemos redirigirla a una nueva URL, lo bueno ó malo es que el valor del PageRank y BackLinks también se transmiten a la nueva URL.

Para crear la redirección es necesario crear un fichero .htaccess en el directorio donde queramos que se produzca la redirección y añadirle las siguientes líneas,

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^dominio1.com$ [NC] 
RewriteRule ^(.*)$ http://dominio.com/$1 [R=301,L]

claro esta que donde pone dominio.com tendréis que poner vuestra nueva URL.

También podemos hacer la redirección con  PHP (en la página que queramos redireccionar),

<? Header( "HTTP/1.1 301 Moved Permanently" ); Header( "Location: http://www.nueva-direccion.com" ); ?>

Con  ASP (en la página que queramos redireccionar)

<% Response.Status="301 Moved Permanently" Response.AddHeader "Location", "http://www.nueva-direccion.com" %>

Suerte y a redireccionar 😉

Ejecutar aplicación con PHP y Windows

Windows + Apache + PHP
Windows + Apache + PHP

Estos días en la oficina hemos tenido que echar mano de un windows y montarle Apache, PHP y MySQL para un proyecto que estamos desarrollando. Sí no había otra forma o windows o nada, por eso digo lo de «nunca cerrar las puertas a nadie» bueno en este caso a «nada».

Sí Windows tendrás sus cosas malas pero en este caso nos está funcionando a las mil maravillas.

Os cuento hemos desarrollado una aplicación que necesita generar un tipo concreto de ficheros que en Linux se nos hacía bastante complicado generar con la suficiente calidad y no nos quedó otro remedio que echar mano de windows.

Los problemas llegaron cuando desde el código PHP no éramos capaces de lanzar un programa, siempre nos encontrábamos con el error,

«programatal.exe» no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.

Buscando en Internet encontramos que teníamos que modificar en el php.ini la siguientes opciones:

  • safe_mode= off
  • safe_mode_exec_dir= On

También es necesario modificar el servicio del apache para darle permisos para permitir al servicio «interactuar con el escritorio», para ello hacemos click en el botón Inicio->Ejecutar y escribimos «Services.msc» ( sin las comillas ), se nos abrirá el «gestor de servicios» de windows, tendremos que hacer click con el botón derecho en el Apache y click en propiedades. Ahora en la ventana que se nos ha abierto haremos click en «Inicio sesión» y marcaremos la opción «Permitir a los servicios que interactúen con el escritorio».

Con estos pasos ya deberíamos poder ejecutar mediante la shell de windows un php y que éste lanze cualquier aplicación. En nuestro caso fue imposible, sí podíamos lanzar, por ejemplo, la calculadora de windows, el bloc de notas pero no una aplicación externa a windows.

Solución? La única solución que encontramos y que está funcionando perfectamente, es el crear un acceso directo al programa en la carpeta donde está nuestro fichero php.

El motivo por el cual no podíamos lanzar nuestra aplicación aún está por descubrir, la falta de tiempo no nos ha dejado investigar un poco más el por qué, aunque teóricamente es una medida de seguridad el no permitir ejecutar programas externos fuera del directorio del php que se está ejecutando.

Servidor caido

Pues otra caída más del server, este vez fue por hacer pruebas con un server en producción.

Jugando con el apache y sus diferentes plugins dejó el sistema totalmente KO…., ya tengo instalado un server en casa para que esto no vuelva a pasar.

Lo importante es que ya estamos de nuevo on-line.

ModRewrite Cheat Sheet

Estos días atrás necesité sacar la chuleta del modrewrite de Apache para modificar varias cositas en el servidor y casi me tiro de los pelos porque ni sabía donde estaba. Pero gracias a la gente de emezeta me pude descargar una cheat-sheet la mar de maja y muy muy completita, aquí os dejo el link, no tiene desperdicio, además de esta cheat-sheet tiene una de PHP muy completa y útil.