A substituição de variáveis ​​no SLD é uma funcionalidade do GeoServer (adicionada na versão 2.0.2) que permite passar valores nas requisições WMS para estilos. Isso permite definir valores dinamicamente, como cores, fontes, tamanhos e limites de filtro.

As variáveis ​​são especificadas nas requisições GetMap do WMS usando o parâmetro env seguido por uma lista de nomes e valores separados por ponto e vírgula conforme demonstrado abaixo:

...&env=name1:value1;name2=value2&...

Em um SLD, os valores das variáveis ​​são acessados ​​usando a função env que recupera um valor de variável especificado substituindo na solicitação atual:

<ogc:Function name="env">
   <ogc:Literal>size</ogc:Literal>
</ogc:Function>

Um valor padrão pode ser fornecido, e será usado se a variável não for especificada na solicitação:

<ogc:Function name="env">
   <ogc:Literal>size</ogc:Literal>
   <ogc:Literal>6</ogc:Literal>
</ogc:Function>

A função env pode ser usada em um SLD em qualquer lugar onde uma expressão OGC é permitida. Por exemplo, ele pode ser usado em elemento CSSParameter, em elementos de tamanho e deslocamento e até em expressões de filtros nas regra. Também é aceito em alguns lugares onde expressões completas não são permitidas, como no elemento Mark/WellKnownName.

O seguinte elemento Symbolizer foi parametrizado em três locais, com os valores padrão fornecidos em cada caso, veja:

<PointSymbolizer>
  <Graphic>
    <Mark>
      <WellKnownName><ogc:Function name="env">
            <ogc:Literal>name</ogc:Literal>
            <ogc:Literal>square</ogc:Literal>
         </ogc:Function>
      </WellKnownName>
      <Fill>
        <CssParameter name="fill">
          <ogc:Function name="env">
            <ogc:Literal>color</ogc:Literal>
            <ogc:Literal>FF0000</ogc:Literal>
         </ogc:Function>
        </CssParameter>
      </Fill>
    </Mark>
    <Size>
       <ogc:Function name="env">
          <ogc:Literal>size</ogc:Literal>
          <ogc:Literal>6</ogc:Literal>
       </ogc:Function>
    </Size>
  </Graphic>
</PointSymbolizer>

Quando nenhuma variável é fornecida na requisição WMS, o SLD usa os valores padrão e renderiza o conjunto de dados, conforme mostrado abaixo na camada sf:bugsites:

Se a solicitação for alterada para especificar os seguintes valores de variáveis:

&env=color:00FF00;name:triangle;size:12

O resultado então será:

Agora basta você aplicar nos seus estilos SLD.

Fonte: GeoServer Documentation