我有一个企业应用程序JAVA编写的与JSF(使用RichFaces3.3).目前我的网址看起来是这样的:

http://localhost/WebApplication/faces/folder1/page.jsp

问题是如何做我掩我的网址,使它像这样:

http://localhost/folder1/page.jps

基本上,我想要隐藏"Application/脸/"

感谢

有帮助吗?

解决方案

重写网址内的应用程序可以使用 UrlRewrite.然而,在这种情况下,它看起来像你想删除网页应用程序的上下文的道路,在这种情况下你有两个选择:

  1. 部署应用程序的背景下路径 / (是如何应用程序服务器的-特定)
  2. 运行Apache在港口的80和使用mod_proxy代理某些网址你的应用程序服务器上运行的一个不同港口,使用配置喜欢的东西如下。

Apache配置:

<Proxy http://localhost:8080/*>
    Order Allow,Deny
    Allow From All
</Proxy>

ProxyPreserveHost On
ProxyPass / http://localhost:8080/WebApplication/
ProxyPassReverse / http://localhost:8080/WebApplication/

其他提示

注意,/面/是由于在web.xml的映射。这是JSF标准的映射,但是也可以使用扩展映射。 - 即.faces在URL的结尾

例如,在一个应用程序我这里,这是在web.xml文件:

<servlet-mapping>
    <servlet-name>Persistent Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
</servlet-mapping>

这是使用ICEfaces的,但是它会随着RichFaces的为你类似。你可能会是这样的:<url-pattern>/faces/*</url-pattern>。如果你改变它具有如上*.faces,您的最终网址看起来像这样:

HTTP://localhost/WebApplication/folder1/page.faces

如果您使用的是与彼得·希尔顿了有关部署为根Web应用程序的答案的同时,您的最终网址会是这个样子:

HTTP://localhost/folder1/page.faces

这几乎正是你想要的东西。

PrettyFaces让你重写你的URL。 如果你喜欢的东西更加轻便,延长NavigationHandler和覆盖 handleNavigation,例如通过调用context.getExternalContext()。重定向()

是的。我们设计PrettyFaces正是来处理这种情况:

PrettyFaces - SEO,动态参数,书签,和导航为JSF / JSF2

您也可以从面改变文件夹的名称把jsp例如是这样的:

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/jsp/*</url-pattern>
</servlet-mapping>
<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>
<welcome-file-list>
   <welcome-file>jsp/index.jsp</welcome-file>
</welcome-file-list>

然后你的URL将是这样的:

http://localhost/WebApplication/jsp/folder1/page.jsp

如果你部署应用程序上下文路径/应用服务器的它会是这样的:

http://localhost/jsp/folder1/page.jsp

这将是现在很难找出你使用JSF的是lamers ;-)但黑客可以通过他的浏览器指向URL这样http://localhost/folder1/page.jsp调查此事

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top