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

时间:2010-10-27 06:35:41

标签: apache jsp url tomcat

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

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

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

  3. 我正在寻找的是“推荐”的做法(示例是惊人的)。我知道mod_rewrite,mod_jk,mod_proxy_ajp和mod_proxy_http,但我正在寻找的是优点/缺点,以及你们可能对其中一个或者其他人的经验,以及你们如何设置它们。

    欢迎任何和所有建议。

    由于

1 个答案:

答案 0 :(得分:3)

以下是我熟悉的指南:

  • 尝试在不使用Apache的情况下尽可能多地在应用程序中执行操作。这将使您的应用程序托管更容易,它将帮助您维护您的应用程序,因为所有逻辑都在一个位置。其他优点:您不需要Apache在本地运行您的应用程序。

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

以下是如何将任何网址(在本例中为“/ 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>

有关使用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/production/permanent-unique-urls/friendly-urls/

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