springmvc 伪静态化

http://www.zuidaima.com/share/1931697809247232.htm

最近在做SEO方面的优化,使最代码的所有请求地址静态化,避免出现请求参数带问号。

其实很多文章在介绍伪静态时都通过http web server如nginx,apache来实现url rewrite,其实java层面实现该技术也是很简单,很多开源的技术框架也可以做到,比如tuckey.org的urlrewrite技术,今天给牛牛们展现下springmvc的urlrewrite技术。

拿最复杂的分享搜索分页排序的例子来说吧:

支持参数k,p,s,其中k是关键词,[\w\W]标示任意字符,这是我以前调用java正则的时候学到的一招,非常的强大,非常magic的写法.p是分页,s是排序

01 @RequestMapping(value = { "share/k{k:[\\w\\W]+}-p{p:\\d+}-s{s:\\d+}" }, method = { RequestMethod.GET })
02 public String shareSearchPSK(@PathVariable Integer p,
03         @PathVariable Integer s, @PathVariable String k, ModelMap model) {
04     Page<Project> projects = projectService.findAllByTitleOrTagsAndType(k,
05             ModuleConstants.PROJECT_TYPE_SHARE_CODE, p,
06             ParamConstants.DEFAULT_COUNT);
07     model.put("projects", projects);
08     model.put("key", k);
09     populateTopDatas(model);
10     return "project/share/search";
11 }

请求实例如下:http://www.zuidaima.com/share/k%E6%9C%80%E4%BB%A3%E7%A0%81-p1-s1.htm

可以参考线上的所有请求地址,已经在逐步伪静态化,老的请求地址全部都301到新的地址。

猜你喜欢

转载自balzac.iteye.com/blog/2195886