Eu tenho um aplicativo corporativo escrito em JAVA com JSF (usando RichFaces 3.3). Atualmente meu URL é assim:
http: //localhost/WebApplication/faces/folder1/page.jsp
Pergunta é como eu mascarar minha url para torná-lo assim:
http: //localhost/folder1/page.jps
Basicamente eu quero esconder “Application / faces /”
obrigado
Para rewrite URLs dentro de seu aplicativo, você pode usar o UrlRewrite . No entanto, neste caso, parece que você deseja remover o caminho de contexto do seu aplicativo da Web. Nesse caso, você tem duas opções:
/
(como é o servidor de aplicativos específico) Configuração do Apache:
Order Allow,Deny Allow From All ProxyPreserveHost On ProxyPass / http://localhost:8080/WebApplication/ ProxyPassReverse / http://localhost:8080/WebApplication/
Note que o / faces / é devido ao mapeamento em web.xml
. Este é um mapeamento padrão para o JSF, no entanto, você também pode usar o mapeamento de extensão – ou seja, .faces
no final da URL.
Por exemplo, em um aplicativo que tenho aqui, isso está no arquivo web.xml:
Persistent Faces Servlet *.faces
Isso está usando IceFaces, no entanto, será semelhante para você com RichFaces. O seu provavelmente será parecido com isto:
. Se você alterá-lo para ter *.faces
como acima, seu URL final ficará assim:
http: //localhost/WebApplication/folder1/page.faces
Se você usar isso em conjunto com a resposta que Peter Hilton deu sobre a implantação como um aplicativo da Web raiz, sua URL final será semelhante a esta:
http: //localhost/folder1/page.faces
Qual é quase exatamente o que você queria.
PrettyFaces permite que você reescreva sua URL. Se você preferir algo mais leve, estenda o NavigationHandler e substitua o handleNavigation, por exemplo chamando context.getExternalContext (). Redirect ()
Sim. Nós projetamos PrettyFaces exatamente para lidar com essa situação:
PrettyFaces – SEO, parâmetros dynamics, marcadores e navegação para JSF / JSF2
Você também pode alterar o nome da pasta de faces para jsp, por exemplo, assim:
Faces Servlet /jsp/* 30 jsp/index.jsp
E então sua url será semelhante a:
http://localhost/WebApplication/jsp/folder1/page.jsp
e se você implementar seu aplicativo no caminho de contexto / do servidor de aplicativos, ele se parecerá com:
http://localhost/jsp/folder1/page.jsp
será difícil agora descobrir que você usa o JSF para lamers 😉 mas um hacker pode investigá-lo apontando seu navegador para o URL como este http://localhost/folder1/page.jsp