Ahora que disponemos de un servidor Linux y las páginas son servidas por Apache, podemos disfrutar de algunos módulos que se podían echar de menos en un IIS con Windows, como son mod_rewrite y mod_proxy. Sin embargo, el primero viene activado con la instalación estándar de Plesk, pero el segundo no, de forma que al escribir ciertas reglas en el fichero .htaccess obtendremos mensajes de error.

Así, el siguiente .htaccess:

RewriteEngine on
Options +FollowSymlinks

RewriteCond %{HTTP_HOST} url\.original\.com
RewriteRule (.*)$ http://otroserver.com/undircualquiera/$1 [P,L]

Que lo que busca es la redirección “neutra”, mediante un proxy, de una URL a otro sitio (por la directiva [P]), genera el siguiente error:

[Mon Sep 19 13:33:04 2011] [alert] [client x.x.x.x] /var/www/vhosts/dominio.com/subdominio/.htaccess: Invalid command 'ProxyPass', perhaps misspelled or defined by a module not included in the server configuration.

Bien, esto lo que nos indica es que el módulo no está activado, ya que instalado sí está en Plesk, así que procedemos a su activación con a2enmod proxy. Tras esto, nos podemos encontrar con otro error:

[Mon Sep 19 13:57:08 2011] [warn] proxy: No protocol handler was valid for the URL /. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.

Esto es debido a que el módulo mod_proxy por si solo no funciona, así que instalaremos otros dos módulos, con a2enmod proxy_balancer y a2enmod proxy_http, y reiniciaremos apache con service apache2 restart.

Tras esto, ya deberíamos tener mod_proxy redirigiendo correctamente las peticiones, sin que cambie la URL que el cliente ve en su navegador.

Si en lugar de utilizar .htaccess preferimos definir las reglas en vhosts.conf, conviene recordar que la carpeta adecuada es /var/www/vhosts/dominio.com/conf, que luego Plesk ya generará el fichero vhosts.conf completo.

Bonus: mod_rewrite en IIS

Si por lo que sea —jugando a adivinar, por mantener ASP.NET en un servidor IIS 6— necesitamos mantener el Internet Information Server, pero queremos disfrutar de mod_rewrite, permitiendo así tener URLs amigables, disponemos de una estupenda solución: Helicon Ape.

Es gratuito hasta tres dominios, y si se necesitan más, tiene un precio muy interesante. Como se puede ver, soporta no sólo mod_rewrite, sino casi cualquier módulo que se te ocurra de Apache.