Oi Ricardo,

apesar de você achar que seu problema é semelhante aos que eu já
expliquei aqui, o seu problema é novo :-)

O que acontece é que você tem um site que não responde na raiz de um
dominio, mas em diretorios diferentes de um unico dominio. Como  o
Plone assume que coisas como CSS, JS e imagens do skin devem sempre
ser carregadas da raiz "do dominio" voce tem que usar de uma
estrategio (pouco documentada) para instruir o Zope a respeito de como
fazer o traverse dos objetos e achar a raiz do dominio adequadamente.

Eis um exemplo:

(r'^http://www4.teste2/portos/(.*)',
 
r'http://backendpoo2l/VirtualHostBase/http/www4.teste2:80/VirtualHostRoot//_vh_portos\1',
'P,L'),

É conveniente ter o objeto "portos" como sendo um plone site na raiz
do servidor, seguindo a regra acima.

Com alguns testes e essa dica você deve conseguir algum progresso.

Atenciosamente,

Fabiano Weimar


2008/2/7 Ricardo Brito do Nascimento <[EMAIL PROTECTED]>:
>
>
>
>
>
>
>  Estou com um problema similar, uso o CacheFu+squid.
>  ex:
>  www4.teste2/icp >> sitePlone do icp em mount point
>  www4.teste2/portos >> sitePlone dos portos em mount point
>  etc...
>  o rewriterule.py em anexo, mas segue a parte da regra que estou com
> problemas.
>  (r'^http://www4.teste2/icp/(.*)',
> r'http://backendpool2/VirtualHostBase/http/www4.teste2:80/icp/icp-brasil/VirtualHostRoot/icp/\1',
> 'P,L'),
>  (r'^http://www4.teste2/portos/(.*)',
> r'http://backendpool2/VirtualHostBase/http/www4.teste2:80/portos/se-portos/VirtualHostRoot/portos\1',
> 'P,L'),
>  (r'^http://www4.teste2/sepm/(.*)',
> r'http://backendpool2/VirtualHostBase/http/www4.teste2:80/sepm/forum-mulheres/VirtualHostRoot/\1',
> 'P,L'),
>  #(r'^http://www4.teste2/(.*)',
> r'http://backendpool2/VirtualHostBase/http/www4.teste2:80/VirtualHostRoot/\1',
> 'P,L'),
>
>
>  Conto com a ajuda de vocês e estou enviando em anexo o meu
> squidRewriteRules.py.
>
>
>
>  —————
>    Jesus te ama, aceite-O!
>  A Graça do nosso Senhor Jesus Cristo seja contigo. (1ªTessalonicenses 5.28)
>  ________________________________
>    Jesus loves you, accept you Him!
>    The grace of our Lord Jesus Christ be with you. (1ªThessalonians 5.28)
>  —————
>
>
>  Fabiano Weimar dos Santos escreveu:
>
>
>
> Oi Walter,
>
>  apenas com o que voce enviu para a lista fica dificil de lhe ajudar.
>
>  Por favor, no envie copia de seu squid.conf e das regras de rewrite.
>
>  Um abraco,
>
>  Fabiano Weimar
>
>  2008/1/25 Walter Cruz <[EMAIL PROTECTED]>:
>  >
>  >
>  >
>  >
>  >
>  >
>  > Galera, seguinte :)
>  >
>  > www.dominio.com aponta prum site zope.
>  >
>  > EU queria, por exemplo, que www.dominio.com/aplicacao fizesse um proxy
>  > reverso pra uma aplicação php, num apache, em outra maquina.
>  >
>  > Tem um squid na frente.. e eu tou apanhando do SquidRewriteRules.py.
>  > Alguma idéia?
>  >
>  > []'s
>  > - Walter
>  >
>
>  --
>  Fabiano Weimar dos Santos (xiru)
>  Weimar Consultoria
>
>  Hospedagem Plone, Zope e Python
>  http://www.pytown.com
>  
> """
> /**********************************************************************
> FILE     : $RCSfile: squidRewriteRules.py,v $
> PURPOSE  : Rule set for icoya redirector
> NOTES    :
> AUTHOR   : Simon Eisenmann
> COPYRIGHT: (c) 2003,2004 by struktur AG
> DATE     : 28JAN2003
> REVISION : $Revision: 1.12 $
> VERSION  : $Id: squidRewriteRules.py,v 1.12 2004/08/06 08:16:19 longsleep
> Exp $ (Author: $Author: longsleep $)
>
> struktur AG            Phone: +49 711 8966560
> Junghansstr. 5         Fax:   +49 711 89665610
> 70469 Stuttgart        email: [EMAIL PROTECTED]
> GERMANY
>
> http://www.struktur.de
> http://www.strukturag.com
>
> **********************************************************************/
>
>  Reloadable module allows arbitrary url transformations.
>
>
>  Automatic reload of the rules
>  +++++++++++++++++++++++++++++++++++
>
>  NOTE: use the reload after parameter to auto reload this module
>        after x requests. Use -1 to disable auto reload
>
>
>  Logging
>  +++++++++++++++++++++++++++++++++++
>
>  NOTE: set debug to 1 to enable logging
>        define the logfile in the logfile variable (enter full path)
>
>
> """
> import re, sys
>
> try:
>     import py
> except ImportError:
>     pass
>
> """
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> begin of configuration
> """
>
> # log mode (set to 1 to enable logging)
> debug = 1
>
> # logfile for debugging (only required when debug == 1)
> logfile = "/var/log/squid/redirector_class.log"
>
> # set this to -1 to get best performance (no reload)
> reload_after = -1
>
> # define sitemap matching regex mapping
>
> # MODIFY THIS REWRITE RULE AS NEEDED FOR YOUR SITE
>
> rewrites = (
> ################################################################
> ############## Homologação 10.100.0.36 #########################
> ##OK (r'^http://icp.teste/(.*)',
> r'http://backendpool/VirtualHostBase/http/icp.teste:80/icp-brasil/VirtualHostRoot/\1',
> 'P,L'),
> ##OK (r'^http://softwarelivre.teste/(.*)',
> r'http://backendpool/VirtualHostBase/http/softwarelivre.teste:80/softwarelivre/VirtualHostRoot/\1',
> 'P,L'),
> ##OK (r'^http://portos.teste/(.*)',
> r'http://backendpool/VirtualHostBase/http/portos.teste:80/se-portos/VirtualHostRoot/\1',
> 'P,L'),
> ##OK (r'^http://spmulheres.teste/(.*)',
> r'http://backendpool/VirtualHostBase/http/spmulheres.teste:80/forum-mulheres/VirtualHostRoot/\1',
> 'P,L'),
>
> ########### Plone 2.5.5 com mount-point ########################
>
> ##OK (r'^http://plone.teste2/(.*)',
> r'http://backendpool2/VirtualHostBase/http/plone.teste2:80/Plone/VirtualHostRoot/\1',
> 'P,L'),
>
> ##OK (r'^http://icp.teste2/(.*)',
> r'http://backendpool2/VirtualHostBase/http/icp.teste2:80/icp/icp-brasil/VirtualHostRoot/\1',
> 'P,L'),
> ##OK (r'^http://polpub.teste2/(.*)',
> r'http://backendpool2/VirtualHostBase/http/polpub.teste2:80/polpub/politicas-publicas/VirtualHostRoot/\1',
> 'P,L'),
> ##OK (r'^http://portos.teste2/(.*)',
> r'http://backendpool2/VirtualHostBase/http/portos.teste2:80/portos/se-portos/VirtualHostRoot/\1',
> 'P,L'),
> ##OK (r'^http://spmulheres.teste2/(.*)',
> r'http://backendpool2/VirtualHostBase/http/spmulheres.teste2:80/sepm/forum-mulheres/VirtualHostRoot/\1',
> 'P,L'),
>
>
> ##OK (r'^http://www1.teste2/(.*)',
> r'http://backendpool2/VirtualHostBase/http/www1.teste2:80/VirtualHostRoot/\1',
> 'P,L'),
> #+/-OK (r'^http://www4.teste2/icp/(.*)',
> r'http://backendpool2/VirtualHostBase/http/www4.teste2:80/icp/icp/icp-brasil/VirtualHostRoot/\1',
> 'P,L'),
>
> #
> (r'^http://www4.teste2/icp/(.*)',
> r'http://backendpool2/VirtualHostBase/http/www4.teste2:80/icp/icp-brasil/VirtualHostRoot/icp/\1',
> 'P,L'),
> (r'^http://(www4.teste2/polpub/)(.*)',
> r'http://backendpool2/VirtualHostBase/http/www4.teste2:80/polpub/politicas-publicas/VirtualHostRoot/\2',
> 'P,L'),
> (r'^http://www4.teste2/portos/(.*)',
> r'http://backendpool2/VirtualHostBase/http/www4.teste2:80/portos/se-portos/VirtualHostRoot/portos\1',
> 'P,L'),
> (r'^http://www4.teste2/sepm/(.*)',
> r'http://backendpool2/VirtualHostBase/http/www4.teste2:80/sepm/forum-mulheres/VirtualHostRoot/\1',
> 'P,L'),
> #(r'^http://www4.teste2/(.*)',
> r'http://backendpool2/VirtualHostBase/http/www4.teste2:80/VirtualHostRoot/\1',
> 'P,L'),
>
> ########### Plone 3.0.4  ########################
> ##OK (r'^http://teste1.teste3/(.*)',
> r'http://backendpool3/VirtualHostBase/http/teste1.teste3:80/teste1/VirtualHostRoot/\1',
> 'P,L'),
> ########################################
>
> ##  Não remova o parentese  ############
> )
> ########################################
>
> # Some other examples:
> #rewrites = (
> #    (r'^http://www.foobar.com(:\d+/|/)--zmi--(.*)',
> r'http://backendpool/VirtualHostBase/http/www.foobar.com\1VirtualHostRoot/_vh_--zmi--\2',
> 'L'),
> #    (r'^http://www.foobar.com(:\d+/|/)--repos--(.*)',
> r'http://localhost/--repos--\2', 'L'),
> #    (r'^http://www.foobar.com(:\d+/|/)(.*)',
> r'http://backendpool/VirtualHostBase/http/www.foobar.com\1foobarportal/VirtualHostRoot/\2',
> 'L'),
> #    (r'^http://www.foobar-bacon.com(:\d+/|/)(.*)',
> r'http://backendpool/VirtualHostBase/http/www.foobar-bacon.com\1foobarbacon/VirtualHostRoot/\2',
> 'L'),
> #    (r'^http://foobar\.com(.*)', r'http://www.foobar.com\1', 'R,L'),
> #    (r'^http://foobar-bacon\.com(.*)', r'http://www.foobar-bacon.com\1',
> 'R,L'),
> #    (r'^http://.*?(?:foobar-portal|foobar-portal-europe)\.de(.*)',
> r'http://www.foobar.com\1', 'R,L'),
> #    (r'^http://.*?foobar\.de(.*)', r'http://www.foobar.com\1', 'R,L'),
> #
> (r'^http://.*?(?:foobar-bacon|foobar-bacon-europe)\.(?:de|com|net)(.*)',
> r'http://www.foobar-bacon.com\1', 'R,L'),
> #    (r'^http://www.foobar.com/((?:defq|ctai|demc|deme))(.*)',
> r'http://h1.foobar.com/\1\2', 'L'),
> #    (r'^cache_object://(.*)', r'cache_object://\1', 'L'), # For RRDTool
> #)
>
>
> """
> end of configuration
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> """
>
> compiled_rewrites = None
>
> def log(s):
>     """ Logging facility.
>     """
>     try:
>         f = open(logfile, "a")
>     except IOError:
>         print >> sys.stderr, s
>         return
>     f.write('%s\n' % s)
>     f.flush()
>     f.close()
>
> def init():
>     global compiled_rewrites
>
>     compiled_rewrites = []
>     for rewrite in rewrites:
>         regexp = re.compile(rewrite[0])
>         template = rewrite[1]
>         flags = {}
>         for flag in rewrite[2].split(','):
>             parts = flag.split('=')
>             flag = parts[0]
>             option = None
>             if flag == 'R':
>                 if len(parts) > 1:
>                     option = "%s:" % parts[1]
>                 else:
>                     option = '302:'
>             flags[flag] = option
>         compiled = (regexp, template, flags)
>         if debug:
>             log('compiled: %s' % str((regexp.pattern, template, flags)))
>         compiled_rewrites.append(compiled)
>     compiled_rewrites = tuple(compiled_rewrites)
>
> def rewrite(url, src_address=''):
>     """ just rewrites urls.
>     """
>
>     if debug:
>         log("args: %s" % str((url, src_address)))
>
>     newurl = None
>     for regexp, template, flags in compiled_rewrites:
>         m = regexp.match(url)
>         if m is not None and template != '-':
>             if debug:
>                 log("match.groups ('%s'): %s" % (regexp.pattern,
> str(m.groups())))
>             url = newurl = "%s%s" % (flags.get('R', ''), m.expand(template))
>             if debug:
>                 log('newurl: %s' % newurl)
>             if 'L' in flags:
>                 break
>
>     if newurl is not None:
>         if debug:
>             log('finalurl: %s' % newurl)
>         return newurl
>
>     # redirect to something we can match by a squid acl
>     # this special non existing domain should be denied
>     # by squid with a http_reply_access line
>     return "http://denypool/denyme";
>
> def test_foobar_redirection():
>     assert rewrite('http://foobar.com/foo/bar') ==
> '302:http://www.foobar.com/foo/bar'
>     assert rewrite('http://foobar.de/foo/bar') ==
> '302:http://www.foobar.com/foo/bar'
>     assert rewrite('http://www.foobar.de/foo/bar') ==
> '302:http://www.foobar.com/foo/bar'
>     assert rewrite('http://foobar-portal.de/foo/bar') ==
> '302:http://www.foobar.com/foo/bar'
>     assert rewrite('http://www.foobar-portal.de/foo/bar') ==
> '302:http://www.foobar.com/foo/bar'
>     assert rewrite('http://foobar-portal-europe.de/foo/bar') ==
> '302:http://www.foobar.com/foo/bar'
>     assert rewrite('http://www.foobar-portal-europe.de/foo/bar') ==
> '302:http://www.foobar.com/foo/bar'
>     # shouldn't redirect, just rewrite
>     assert not rewrite('http://www.foobar.com/foo/bar').startswith('302:')
>
> def test_foobarbacon_redirection():
>     assert rewrite('http://foobar-bacon.com/foo/bar') ==
> '302:http://www.foobar-bacon.com/foo/bar'
>     assert rewrite('http://foobar-bacon.de/foo/bar') ==
> '302:http://www.foobar-bacon.com/foo/bar'
>     assert rewrite('http://www.foobar-bacon.de/foo/bar') ==
> '302:http://www.foobar-bacon.com/foo/bar'
>     assert rewrite('http://foobar-bacon-europe.de/foo/bar') ==
> '302:http://www.foobar-bacon.com/foo/bar'
>     assert rewrite('http://www.foobar-bacon-europe.de/foo/bar') ==
> '302:http://www.foobar-bacon.com/foo/bar'
>     assert rewrite('http://foobar-bacon-europe.com/foo/bar') ==
> '302:http://www.foobar-bacon.com/foo/bar'
>     assert rewrite('http://www.foobar-bacon-europe.com/foo/bar') ==
> '302:http://www.foobar-bacon.com/foo/bar'
>     assert rewrite('http://foobar-bacon.net/foo/bar') ==
> '302:http://www.foobar-bacon.com/foo/bar'
>     assert rewrite('http://www.foobar-bacon.net/foo/bar') ==
> '302:http://www.foobar-bacon.com/foo/bar'
>     # shouldn't redirect, just rewrite
>     assert not
> rewrite('http://www.foobar-bacon.com/foo/bar').startswith('302:')
>
> def test_virtual_hosting():
>     assert rewrite('http://www.foobar.com/foo/bar') ==
> 'http://backendpool/VirtualHostBase/http/www.foobar.com/foobarportal/VirtualHostRoot/foo/bar'
>     assert rewrite('http://www.foobar.com:8088/foo/bar') ==
> 'http://backendpool/VirtualHostBase/http/www.foobar.com:8088/foobarportal/VirtualHostRoot/foo/bar'
>     assert rewrite('http://www.foobar-bacon.com/foo/bar') ==
> 'http://backendpool/VirtualHostBase/http/www.foobar-bacon.com/foobarbacon/VirtualHostRoot/foo/bar'
>     assert rewrite('http://www.foobar-bacon.com:8088/foo/bar') ==
> 'http://backendpool/VirtualHostBase/http/www.foobar-bacon.com:8088/foobarbacon/VirtualHostRoot/foo/bar'
>
> def test_zmi():
>     assert rewrite('http://www.foobar.com/--zmi--/foo/bar') ==
> 'http://backendpool/VirtualHostBase/http/www.foobar.com/VirtualHostRoot/_vh_--zmi--/foo/bar'
>     assert rewrite('http://www.foobar.com:8088/--zmi--/foo/bar') ==
> 'http://backendpool/VirtualHostBase/http/www.foobar.com:8088/VirtualHostRoot/_vh_--zmi--/foo/bar'
>
> def test_repos():
>     assert rewrite('http://www.foobar.com/--repos--/foo/bar') ==
> 'http://localhost/--repos--/foo/bar'
>     assert rewrite('http://www.foobar.com:8088/--repos--/foo/bar') ==
> 'http://localhost/--repos--/foo/bar'
>
> if debug:
>     log("reloading user redirector module")
> init()
> if debug:
>     log("reloaded user redirector module")
>
>



-- 
Fabiano Weimar dos Santos (xiru)
Weimar Consultoria

Hospedagem Plone, Zope e Python
http://www.pytown.com


Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/zope-pt/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 

Responder a