我有一个网站,可以生成许多动态的公司资料。 这些都由一个jsp页面显示,其中包含一个标识公司的参数。
我不是SEO实践方面的专家,但我确信用户友好的网址对搜索引擎来说会更好,然后是一个不起眼的参数。
所以而不是
site.com/company.jsp?id=21312
应该阅读
site.com/Country/State/Company_Name
或者那种效果。
是否有任何现有策略或最佳做法来制作这些网址? 我的环境是一个jsp / servlet tomcat容器,如果有任何不同,我正在使用前视图控制器模式。
以下是我对如何解决它的两点看法。
1)保存公司资料(后端)生成html页面,并重定向到参数化的jsp。此页面将保存在与上面给出的示例匹配的目录结构中。 /CountryName/StateName/CompanyName.html
我不知道搜索引擎是否会忽略它,因为它会重定向到另一个页面。我还预测,当公司名称发生变化或其位置发生变化时,内务管理可能会成为问题。所以我不知道这是否是最好的选择。
2)不知何故有一个 servlet解释url 并相应地重定向。
所以换句话说有一个名为Map的servlet(例如),所以有一个url:site.com/Map/Country/State/CompanyName
将被Map servlet拾取并细分url以查找相关页面。
我不知道servlet是否可以实现这一点。 (编辑:可以使用Map / *完成)
如果我遗失了其他任何选项,请告诉我,或者我是否可以改进现有的想法。
非常感谢。
答案 0 :(得分:1)
REST为您提供了网址的最佳做法。您可以查看this section了解详情。
您还可以从一些着名的REST API中学习,例如。 Twitter REST API,Google数据API(例如Google Contacts API)。
对于Java实现,JAX-RS是用于RESTful Web服务的Java API。有许多实现,例如CXF,RESTEasy,Jersey。
下面的示例代码让您快速了解JAX-RS的外观:
// Root resource class
@Path("/employeeinfo")
public class EmployeeInfo {
// Subresource locator: obtains the subresource Employee
// from the path /employeeinfo/employees/{empid}
@Path("/employees/{empid}")
public Employee getEmployee(@PathParam("empid") String id) {
// Find the Employee based on the id path parameter
Employee emp = ...;
...
return emp;
}
}
答案 1 :(得分:1)
这是UrlRewriteFilter!
配置以执行您所要求的内容:
<rule>
<name>World Rule</name>
<from>^/world/([a-z]+)/([a-z]+)$</from>
<to>/world.jsp?country=$1&city=$2</to>
</rule>
http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/4.0/index.html