그래서 URLRewrite 필터를 보면 해결책을 찾았습니다.
응답을 무시하는 필터와 encodeURL 메서드를 코딩합니다.
요청에 LNG의 PARAM가있는 경우 감지가 getDefaultLng
방법에 빈에서 기본 LNG 값을 얻을 수없는 경우, doFilter 방법에있어서,
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
단지 추가하는 param.
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가 있습니다.
세션 범위 Bean에 이미있는 경우 왜 이것을 사용해야합니까? 그것은 순수한 SEO 목적인가요? – BalusC
정확하게, SEO 목적, 우리 SEO 부서는 페이지의 모든 링크에 'lng'이 있어야합니다. – TinGinard