| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/06/2004 13:02:35
|
Rafael Steil
Administrador
![[Avatar]](/images/avatar/8e296a067a37563370ded05f5a3bf3ec.jpg)
Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline
|
A situacao eh a seguinte: no JForum eu tenho um esquema de "url amigavel". Ou seja, ao inves dos links serem na forma
eh possivel acessar simplesmente digitando
Porem, obviamente nao existe a estrutura de diretorios "/posts/list/15", o que me obrigou a usar a tag <base href="..."> do HTML para informar ao browser o diretorio raiz ( base ) do site, ficando algo como
dessa forma, os links e paths de imagens podem ser escritos normalmente, usando <img src="templates/blah/images/logo.jpg>. Isso nao seria possivel sem a tag <base>, uma vez que o browser tentaria buscar na estrutura "/posts/list/15/templates/blah/images/logo.jpg".
O uso de <base> funciona ok para a maior parte das situacoes, porem, ha alguns problemas quando o forum eh acessado via algum Rewrite de URL do webserver, como o mod_proxy do Apache.
Com o mod_proxy, eh possivel fazer algo no estilo
Host: https://server.externo.dominio.com
Host: http://server.intranet
Ou seja, eh feito um mapeamento nos servidores para que, se algum digitar /forum, o Apache redirecione, "por baixo dos panos", para o Tomcat. E ai eh que da problema, uma vez que a tag base vai ficar com o valor
sendo que o correto seria ficar com o valor do host origjnal.
Nesses casos ja eh usado mod_jk para integrar Tomcat e Apache, sem problemas. O ponto eh somemente quando usando essas configuracoes de proxy.
Alguem tem alguma ideia de como resolver / contornar esse problema, seja ele qual for?!? .. Por enquanto, a unica ideia que me vem a cabeca seria desabilitar as "ulrs amigaveis' e usar tudo na forma normal. Mas eh uma solucao que nao em agrada.
Rafael
|
"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"
http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/06/2004 19:07:05
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Perai, o mod_rewrite esta reescrevendo a tag base?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/06/2004 20:21:01
|
Rafael Steil
Administrador
![[Avatar]](/images/avatar/8e296a067a37563370ded05f5a3bf3ec.jpg)
Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline
|
Nao, nao eh usado mod_rewrite. O valor da tag <base>, atualmente, eh setado no braco, via arquivo de configuracao, mas daria no mesmo se pegasse o valor via codigo, usando o getContextPath(), getServerName() etc...
Talvez eu esteja lidando com a situacao da forma errada, ja que fiquei 'viciado' no problema. Pensei em usar paths relativos a contexto, na forma
mas isso de qualquer forma obrigaria a URL original ser "/meuContexto" tambem, nao?!..
Rafael
|
"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"
http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/06/2004 21:33:17
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Hmmm... cara, vc tem que pensar como o browser nessas horas...
Se voce esta na pagina /page/cv/index.html, e tem uma tag img apontando pra /images/foo.jpg, o browser vai fazer GET /images/foo.jpg. Ate ai, facil.
Se voce esta na pagina /page/cv/index.html, e tem uma tag img apontando pra ../images/foo.jpg, o browser vai fazer GET /page/images/foo.jpg. Beleza, tambem.
Se voce colocar um <base>, e poe /images/foo.jpg, voce ganha um GET /base/images/foo.jpg. Se voce colocar ../images/foo.jpg, eu ja nao sei o que acontece (fazer o que )
Entao, o problema eh basicamente o de sincronizar a tag <base> com o que o browser realmente recebe - ou seja, configurar a tag pra que ela mande pro cliente a URL base que o httpd esta redirecionando
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/06/2004 01:00:15
|
Richardson
JavaTeenager
![[Avatar]](/images/avatar/c8a589523f5e272d528f3.gif)
Membro desde: 29/10/2002 16:54:29
Mensagens: 178
Localização: Recife/PE
Offline
|
Rafael, pq vc prefere esse URL amigável?
Como vc trata essa URL? Uma vez fiz isso em php e eu tinha que tratar tudo depois do /tagAmigavel/... com expressão regular. Com java nunca pensei em fazer isso. Gostaria de saber sua opinião sobre as vantagens disso.
valeu!
|
El Peregrino del Camino de Santiago
RecJUG :: Recife Java User Group
www.recjug.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/06/2004 01:42:30
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Richardson, esses dois links provavelmente respondem a sua pergunta
https://urlrewrite.dev.java.net/
http://www.useit.com/alertbox/990321.html
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/06/2004 11:09:16
|
Rafael Steil
Administrador
![[Avatar]](/images/avatar/8e296a067a37563370ded05f5a3bf3ec.jpg)
Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline
|
Interessante esse projeto URLRewrite..
Richardson, o segundo link do cv ja responde o resto
No jforum eu fiz o meu proprio esquema para tratar essas urls, ate pq nao conhecia nenhum projeto para lidar com isso ( claro, tmb nao me dei ao trabalho de sequer pensar em procurar ).
De qualquer forma, eu basicamente defino um arquivo .properties com a url que eu quero, e entao, a cada request, quebro ela em partes em procuro por um padrao. Veja:
urlPattern.properties
https://jforum.dev.java.net/source/browse/jforum/WEB-INF/config/urlPattern.properties?rev=1.5&content-type=text/vnd.viewcvs-markup
ActionServletRequest.java: guarda os padroes e processa a url
https://jforum.dev.java.net/source/browse/jforum/src/net/jforum/ActionServletRequest.java?rev=1.6&content-type=text/vnd.viewcvs-markup
Funciona relativamente bem pras necessidades do sistema, ate o momento.
Rafael
|
"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"
http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2004 00:09:22
|
Richardson
JavaTeenager
![[Avatar]](/images/avatar/c8a589523f5e272d528f3.gif)
Membro desde: 29/10/2002 16:54:29
Mensagens: 178
Localização: Recife/PE
Offline
|
Valeu pessoal, sua solução Rafael é bem parecida com a que eu fiz em php. Quando eu fiz eu queria facilitar para o usuário um link tipo www.site.com.br/hotsite. Essa era minha única motivação, por isso procurei saber a opinião de vcs.
Valeu!!
|
El Peregrino del Camino de Santiago
RecJUG :: Recife Java User Group
www.recjug.com.br |
|
|
 |
|
|