Problemas na abertura de URL sem barra no final

165 views
Skip to first unread message

Renne Rocha

unread,
Aug 4, 2010, 10:09:07 AM8/4/10
to django...@googlegroups.com
Olá pessoal,

Estou instalando uma aplicação no KingHost e estou tendo um pequeno
problema com minhas URLs. Na verdade esse serviço da KingHost já está
me dando vários problemas.

A URL base da aplicação é www.meudominio/minhaaplicacao/.

Se eu acessar esse endereço sou encaminhado para a tela de login em
www.meudominio/minhaaplicacao/login/

Porém se eu acessar www.meudominio/minhaaplicacao (sem a barra no
final), eu acabo encaminhado para www.meudominio/login, quebrando o
meu sistema.

Existe alguma configuração que eu posso fazer para resolver este problema?

Obrigado!

  Renne Rocha
  renne...@gmail.com
  http://rennerocha.webfactional.com/
  +55 19 8154-9345

clauber Paesca

unread,
Aug 5, 2010, 8:05:53 AM8/5/10
to django...@googlegroups.com
se eu não me engano tem um middleware que cuida disso (ou vc mesmo
pode fazer um middleware assim)

desculpe a falta de informações detalhadas, ainda estou aprendendo :)

2010/8/4 Renne Rocha <renne...@gmail.com>:

> --
> Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
> Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>

--
D166ER
---
" O Universo não é apenas mais estranho do que supomos;
ele é mais estranho do que somos capazes de supor."
(John Haldane, biólogo inglês, 1892-1964)

ig...@igorsobreira.com

unread,
Aug 5, 2010, 8:52:39 AM8/5/10
to django...@googlegroups.com


2010/8/4 Renne Rocha <renne...@gmail.com>

 Olá pessoal,

 Estou instalando uma aplicação no KingHost e estou tendo um pequeno
problema com minhas URLs. Na verdade esse serviço da KingHost já está
me dando vários problemas.

 A URL base da aplicação é www.meudominio/minhaaplicacao/.

 Se eu acessar esse endereço sou encaminhado para a tela de login em
www.meudominio/minhaaplicacao/login/

 Porém se eu acessar www.meudominio/minhaaplicacao (sem a barra no
final), eu acabo encaminhado para www.meudominio/login, quebrando o
meu sistema.

 Existe alguma configuração que eu posso fazer para resolver este problema?


Verifique se a url que você tá redirecionando começa com /, por exemplo, vc deve redirecionar pra "/login/" e não para "login/". 
Se você tiver usando o contrib.auth, como de costume, verifica as configurações de login:


Verifica se tu não tá sobrescrevendo essa também: 


--
Igor Sobreira
www.igorsobreira.com

Renne Rocha

unread,
Aug 5, 2010, 7:35:29 PM8/5/10
to django...@googlegroups.com

  O problema não está no redirecionamento. Depois que acessei com a barra, tudo funciona corretamente.

  O que ocorre é no momento que o usuário abre a aplicação, ele informa no navegador www.meudiominio/minhaaplicacao (sem barra no final), ele abre corretamente, mas os links ficam incorretos (www.meudominio.com/minhaview/ ao invés de www.meudominio.com/minhaaplicacao/minhaview/ )

  Alguém tem uma idéia de como resolver isso?

  Obrigado!

  Renne Rocha
  renne...@gmail.com
  http://rennerocha.webfactional.com/
  +55 19 8154-9345


--

Andrews Medina

unread,
Aug 5, 2010, 8:24:28 PM8/5/10
to django...@googlegroups.com
Ola,
Isso acontece porque no link voce colocar a '/' no inicio, isso indica
que a url e absoluta e nao relativa. ex: <a href="/link/">

Para resolver é so tirar a '/' do inicio que a url deixa de ser
absoluta e vira relativa. ex: <a href="link/">

[]'s

2010/8/5 Renne Rocha <renne...@gmail.com>:

--
Andrews Medina
www.andrewsmedina.com

George Ribeiro

unread,
Aug 5, 2010, 9:31:42 PM8/5/10
to django...@googlegroups.com
Oi Andrews. Mas dessa forma com url relativa quando o link2 for
chamado de link1 ele não faz uma url assim[1] não, ao invés de
assim[2]?

[1]: www.meudominio.com.br/link1/link2/
[2]: www.meudominio.com.br/link2/


--
George Ribeiro
blog: blog.georgeribeiro.net
djangopeople: djangopeopple.net/georgeribeiro
twitter: @georgepython

Renne Rocha

unread,
Aug 5, 2010, 9:48:33 PM8/5/10
to django...@googlegroups.com

  Meu urls.py:

urlpatterns = patterns('',
    url(r'^$', 'views.pagina_principal'),
    url(r'^algumaacao/$', 'views.algumaacao', name='meu_link'),
)

  Se eu acessar www.meudominio.com/minhaaplicacao (sem barra) ele chama a view pagina_principal sem problemas. Isso acontece quando o usuário digita o endereço na barra de endereços do navegador.

  Porém, no acesso a um link <a href="/algumaacao/">, ele me encaminha para www.meudominio.com/algumaacao/, mas eu queria que fosse para www.meudominio.com/minhaaplicacao/algumaacao/

  Só que o link no template eu defino com {% url meu_link %}, para ser independente de onde minha aplicação está, então ele sempre aparece com a barra no começo. O problema não é o link ser relativo ou não. O link está da maneira correta.

2010/8/5 Andrews Medina <andrew...@gmail.com>

George Ribeiro

unread,
Aug 5, 2010, 10:45:13 PM8/5/10
to django...@googlegroups.com
Renne, a um ano atrás teve uma discussão sobre isso aqui na lista,
procurei no histório mas não o encontrei.
A solução que o rapaz encontrou para esse caso foi pegar a url base,
no caso, "www.meudominio.com/minhaaplicacao/"
via javascript e colocar dessa forma nos links das páginas. Lembro que
ele criou um plugin jquery para isso.

Você pode fazer isso pelo próprio django, criando no settings um
valor, por exemplo, URL_BASE, usar um context_processor para chamar
ele em todas os templates e usar assim:

no settings:

URL_BASE = 'http://www.meudominio.com.br/minhaplicacao'

<a href="{{ URL_BASE }}{%url home%}"/>

Não testei mas pode funcionar.


PS: Só agora procurando um assunto conhecido no histórico da lista, vi
que 80% dos titulos das mesmas
não correspondem ao que de fato há na thread, tornando praticamente
impossível achar um assunto especifico no meio de milhares outros. É
um caso a se pensar.

George Ribeiro

unread,
Aug 5, 2010, 10:46:09 PM8/5/10
to django...@googlegroups.com
no email anterior era para ser assim:

URL_BASE = 'http://www.meudominio.com.br/minhaplicacao/'

Renne Rocha

unread,
Aug 5, 2010, 11:12:27 PM8/5/10
to django...@googlegroups.com

  Socorro!!!! :-D

  Estou lascado se tiver que fazer isso.... isso está meio fora de questão, porque funciona, mas eu teria que alterar muitos arquivos.

  Provavelmente eu vou criar um diretório 'algumnome' para quando eu acessar http://meudominio.com/algumnome ou http://meudominio.com/algumnome/ ele redireciona (através de um arquivo index.php) para http://meudominio.com/minhaaplicacao/. A partir daí tudo funciona sem eu precisar mexer em nada.

  Agora só preciso "combinar com os russos" (meu cliente), para que a página inicial da aplicação seja um pouco diferente do que pensamos inicialmente.

  Obrigado pela ajuda!

  Renne Rocha
  renne...@gmail.com
  http://rennerocha.webfactional.com/
  +55 19 8154-9345



2010/8/5 George Ribeiro <georg...@gmail.com>
Reply all
Reply to author
Forward
0 new messages