Java和SEO URLS

5
8个回答

6

如果您正在使用新的Spring-MVC注释,您可以使用@RequestMapping和@PathVariable注释:

@RequestMapping("/articles/{subject}")
public ModelAndView findArticleBySubject(@PathVariable("subject") String subject)
{
   // strip out the '-' character from the subject
   // then the usual logic returning a ModelAndView or similar
}

我认为仍然有必要去除连字符 -。


5
这可能会对您有所帮助:

http://tuckey.org/urlrewrite/

如果您熟悉Apache服务器上的mod_rewrite,则这是一个类似的概念。

如果我有多个过滤器怎么办?我该如何处理熵?有更简单的方法吗? - Fagner Brack

1

1

例如,如果您想要URL

http:///blog/11/12/2009/my-hello-world-post/

然后配置servlet映射

<servlet>
<servlet-class>com.blog.Blog</servlet-class>
<servlet-name>blog</servlet-name>
<servlet-class>com.blog.Blog</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>blog</servlet-name>
<url-pattern>/blog/*</url-pattern>
</servlet-mapping>

并在servlet代码中

String url = request.getPathInfo();
StringTokenizer tokens = new StringTokenizer(url,"/");
while(tokens.hasMoreTokens()){
out.println("
"+tokens.nextToken());
}

使用这些参数从数据库获取数据并向用户显示


1

标准的Java Web框架还没有准备好处理这种类型的URL。

据我所知,SpringMVC不支持这种类型的URL。

有两个框架我确定支持这种类型的URL:Mentawai和VRaptor。


1
不完全正确。JSF非常好地支持了这一点,使用pretty faces。请看下面的回答。 - vsingh
我还没有找到比这更简洁的东西 :) - vsingh
“标准Java Web框架还没有准备好” - 这完全不是真的。 - user372743

0

如果你只是想进行SEO优化,你可以这样设计你的URL:

http://mysite.com/articles/my-article-subject/articleId

或者

http://mysite.com/articles/articleId/my-article-subject

在评估URL时,只需忽略my-article-subject部分。

亚马逊在其URL中也采用了类似的方法:

http://www.amazon.com/Dark-Crystal-Jean-Pierre-Amiel/dp/B00000JPH6/ref=sr_1_1?ie=UTF8&s=dvd&qid=1240561659&sr=8-1

这里的文本"Dark-Crystal-Jean-Pierre-Amiel"是完全不相关的,因为文章是由id B00000JPH6标识的。

编辑:实际上我刚刚注意到,在此处使用了正好相同的技术来生成SEO友好的URL...


当然!现在你指出来了,这似乎很明显。应用程序可以忽略它,但所有链接都包含主题内容。 - hamo
它并不是非常用户友好的。你不能指望人们输入那么多内容。 - John Polling
用户想要在网址中输入时,只需输入简短版本:http://mysite.com/articles/articleId - Mr. Shiny and New 安宇

0

我在我们的应用程序中使用了基于JSF的Pretty Faces http://ocpsoft.org/prettyfaces/,这是一个非常简洁的解决方案。不确定它是否适用于Spring MVC,请查看我们的URL。

http://www.skill-guru.com/cat/certification-mock-test

http://www.skill-guru.com/test/81/core-spring-3.0-certification-mock

http://www.skill-guru.com/tutor/Pro+ESL

之前我们的URL不够友好,附加了jsession Id。现在有了pretty filter的帮助,所有URL都变得整洁清晰。 这与WordPress URL非常一致。


-1

生成包含id和描述的url,例如这个url:https://dev59.com/8UfRa4cB1Zd3GeqP8FSx。在servlet中解析url,然后使用id从数据库中获取数据。同样的技术也适用于此stackoverflow页面。看一下url,它是https://dev59.com/8UfRa4cB1Zd3GeqP8FSx,但只考虑了questionId,而忽略了描述。尝试https://dev59.com/8UfRa4cB1Zd3GeqP8FSxhttps://dev59.com/8UfRa4cB1Zd3GeqP8FSx/abcdxyz,你将得到相同的页面。这是生成seo urls的非常好的技术。


请随意在您的个人资料中放置您的网址,但如果您在每个回答中都以它结尾,社区成员会将其标记为垃圾邮件,并最终导致您的回答被删除并且声誉值归零。如果您认为被标记为垃圾邮件发送者会吸引更多人访问您的网站,那么您最好重新考虑您的策略。 - user1228

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接