Так что просто посмотрев фильтр URLRewrite, я нашел решение.
Я кодирую фильтр, который переопределяет ответ, и метод encodeURL.
Метод doFilter, что обнаружить, если есть LNG пары по запросу и если не он получает значение LNG по умолчанию из фасоли в getDefaultLng
методе:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
final HttpServletRequest hsRequest = (HttpServletRequest) request;
final HttpServletResponse hsResponse = (HttpServletResponse) response;
if (hsRequest.getParameter("lng")!=null){
lng = hsRequest.getParameter("lng");
} else {
lng = getDefaultlng(hsRequest, hsResponse);
}
LngResponse lngResponse = new LngResponse(hsResponse,lng);
chain.doFilter(hsRequest, lngResponse);
}
Ап LngResponse#encodeURL
, что только добавляет пары.
public String encodeURL(String s) {
s = parseUrl(s);
return super.encodeURL(s);
}
private String parseUrl(String s){
if (s.indexOf("lng=")==-1){
if (s.indexOf("?")>-1){
s = s+"&lng="+this.lng;
} else {
s = s+"?lng="+this.lng;
}
}
return s;
}
И, наконец, это работает, поэтому наш отдел SEO имеет свои уникальные URI.
Зачем вам это нужно, если он уже включен в сеанс? Это для целей чистого SEO? – BalusC
Точно, SEO Цель, наш отдел SEO должен иметь 'lng'on каждую ссылку на странице. – TinGinard