如何为JSP和SEO友好的干净URL设置Apache和Tomcat

Kre*_*ion 7 apache url jsp tomcat

我正在寻找使用Tomcat 6设置Apache httpd(2.2)的"最佳实践"方法,以便我们可以:

  1. 允许为目录列表提供JSP文件(例如http:/www.example.com通过DirectoryIndex index.jsp显示index.jsp).

  2. 隐藏所有URL的扩展名(由Apache提供的*.html和*.php文件以及由Tomcat提供的*.jsp)以使其对SEO友好.例如,http:/www.example.com/about-us可能会解析为about-us.jsp.

我正在寻找的是"推荐"方法来做到这一点(例子是惊人的).我知道mod_rewrite,mod_jk,mod_proxy_ajp和mod_proxy_http,但我正在寻找的是优点/缺点以及你们可能拥有的任何经验,以及你如何设置它们.

欢迎任何和所有建议.

谢谢

小智 3

以下是我熟悉的指南:

  • 尝试在不使用 Apache 的情况下在应用程序中执行尽可能多的操作。这将使托管您的应用程序变得更加容易,并将帮助您维护您的应用程序,因为所有逻辑都位于一处。额外的优势:您不需要 Apache 在本地运行您的应用程序。

  • 使用 tomcat 执行此操作的一种方法是使用 web.xml。例如,访问主页:/homepage.jsp

下面是如何将任何 url(在本例中为“/detailpage”)映射到 /detailpage.jsp 文件的示例:

<servlet>
    <servlet-name>detail</servlet-name>
    <jsp-file>/detailpage.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>detail</servlet-name>
    <url-pattern>/detailpage</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

有关使用 web.xml 文件的详细信息: http://code.google.com/appengine/docs/java/config/webxml.html

现在,当您有大量文档时,这可能会变得乏味,但我想在这种情况下您会开始使用 CMS 来解决这个问题,对吗?例如,Hippo CMS 中的操作方式如下: http://www.onehippo.org/7_7/library/concepts/request-handling/sitemapitem-matching.html

关于漂亮的网址:我不认为将 .jsp 或 .html 添加到详细信息页面被认为是不好的做法。就我个人而言,我喜欢用 .html 作为详细信息页面,而只用名称作为概述页面,但我想这是一个品味问题。以下是荷兰政府提供的有关友好网址的更多背景信息: http://versie1.webrichtlijnen.nl/english/manual/development/products/permanent-unique-urls/Friendly-urls/

免责声明:您不应将 Hippo 参考视为排他性参考。我在 Hippo 工作,所以我参考了我所知道的 URL 匹配实现。其他(基于 Java 的)CMS 可能具有类似的解决方案,可以在这里找到:http ://en.wikipedia.org/wiki/List_of_content_management_systems#Java