systemadmin.es > LAMP y web > Variables de entorno en los Rewrites

Variables de entorno en los Rewrites

En el caso que tengamos un conjunto de Rewrites comunes para ciertos VirtualHosts pero que cambia algun identificador de site, podemos usar mod_env para poder tener los Rewrites comunes sin tener que copiarlos con el ID diferente.

Para ello deberemos tener en cuenta lo que indica la documentación de mod_env:

If the environment variable you’re setting is meant as input into this early phase of processing such as the RewriteRule directive, you should instead set the environment variable with SetEnvIf.

Por lo tanto, deberemos añadir el SenEnvIf con una condición cualquiera, por ejemplo:

<VirtualHost *:80>
  ServerName ejemplo.systemadmin.es
  SetEnvIf Request_Protocol .* siteid=666


  Include rewrites.inc
(...)
</VirtualHost>

Indicaremos la variable mediante %{ENV:nombrevariable}, por ejemplo:

RewriteRule ^/test/?$ /site%{ENV:siteid} [R=301,L]

Si hacemos la prueba, veremos que se ha añadido en el Rewrite la variable que hemos definido en el VirtualHost:

$ curl -I localhost/test -H 'Host: systemadmin.es'
HTTP/1.1 301 Moved Permanently
Date: Thu, 25 Feb 2016 09:33:27 GMT
Server: Apache
Location: http://systemadmin.es/site666
Content-Type: text/html; charset=iso-8859-1

2 comments to “Variables de entorno en los Rewrites”

  1. Location: http://systemadmin.es/lol666 debería ser Location: http://systemadmin.es/site666

  2. Tienes razón, mal copy-paste. Corregido

    gracias!

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>