JBoss viene con un modulo que le permite configurar rewrites, de la misma manera en que los hace Apache con su modulo mod_rewrite.
A continuación describo los pasos para configurar Jboss y crear una regla de rewrite para nuestro sitio web:
Debemos modificar el archivo server.xml, para este caso lo vamos a hacer a nivel de <host>, el archivo se encuentra en:
<jboss>/server/default/deploy/jbossweb.sar/server.xml
y debemos agregar la siguiente linea a nivel de la seccion <host>:
<Valve className=”org.jboss.web.rewrite.RewriteValve” />
como es a nivel de <host> se debe colocar en la carpeta de configuracion del profile de jboss asi <jboss>/server/conf/[engine_name]/[host_name] :
mkdir -p /<jboss>/server/default/conf/jboss.web/localhost
para este caso engine_name es jboss.web y host_name es localhost.
Ahora creamos el archivo rewrite.properties en la carpeta que creamos en el paso anterior y configuramos nuestras reglas de rewrite.
RewriteCond %{HTTP_HOST} ^admin.tusitio.com$
RewriteCond %{REQUEST_URI} !^/js/(.*)$
RewriteCond %{REQUEST_URI} !^/css/(.*)$
RewriteRule ^/(.*)$ /admin/$1 [L]
con la regla anterior estamos diciendo que todos los request que sean de admin.tusitio.com, que no pertenezcan a la carpeta /js o a la carpeta /css, los redireccione a la carpeta /admin, manteniendo el resto de la url, por ejemplo si hacemos el request admin.tusitio.com/estadisticas/index.html, lo que jboss realmente nos va a mostrar es el archivo admin.tusitio.com/admin/estadisticas/index.html
En otro post veremos con mas detalle la configuracion de rewrites
Tags: apache, jboss, mod_rewrite, rewrite