Usando o DirectoryIndex do Apache para ter uma URL inicial curta e sem redirecionador

É normal que tenhamos endereços tipo twiki.softwarelivre.org e www.butanta.com.br/twiki. Os dois casos originalmente usam um arquivo index.html na raiz do TWiki redirecionando o usuário para /bin/view. Redirecionado o usuário vê: twiki.softwarelivre.org/bin/view e http://www.butanta.com.br/twiki/bin/view. Existe uma solução que não usa o "armengue" de um redirect em html e dá uma estética mais agradável a URL inicial ( lembrando que a primeira impressão é a que fica smile ).

Quando instalamos o TWiki na mão ou via apt-get (salve APT!), no fim das contas temos algo assim no /etc/apache/httpd.conf:

 ScriptAlias /twiki/bin/ "/home/www/twiki/bin/"
 Alias /twiki "/home/www/twiki/"
 <Directory "/home/www/twiki/bin">
    Options +ExecCGI
    SetHandler cgi-script
    (...)
Podemos usar o DirectoryIndex na raiz do TWiki para apontar para a web que desejamos que seja a inicial (nem precisa ser a Main):
 ScriptAlias /twiki/bin/ "/home/www/twiki/bin/"
 Alias /twiki "/home/www/twiki/"
 <LocationMatch ^/twiki/$>
    DirectoryIndex /twiki/bin/view/Butanta
 </LocationMatch>
 <Directory "/home/www/twiki/bin">
    Options +ExecCGI
    SetHandler cgi-script
    (...)

É preciso usar o DirectoryIndex dentro do <LocationMatch> porque usando o DirectoryIndex em um determinado diretório com <Directory> todos os diretórios filhos deste usarão o /twiki/bin/view/<Web> como página inicial. Por exemplo, para o /twiki/pub não deveria haver página inicial! Usando DirectoryIndex com <LocationMatch> somente o(s) diretório(s ) definido(s) terá o tal index personalizado.

Para usar o DirectoryIndex é preciso ter o mod_dir do Apache que provavelmente é um modulo padrão. (me corrijam se eu estiver enganado)

Agora www.butanta.com.br/twiki apresenta o mesmo conteúdo de www.butanta.com.br/twiki/bin/view/Butanta/WebHome. (poderia até ter colocado um outro tópico com outra template como página inicial, como é o caso do twiki.im.ufba.br)

Os links não serão quebrados porque o twiki os escreve desde o início do path. Assim: /twiki/bin/view/<Web>/<MeuTopico>. E as imagens não estão em um path filho ao da url visitada, elas ficam em /twiki/pub/<Web>/<MeuTopico>/<imagem.bli> por isso também não sofrem com essa mudança.

Beneficios:

  • Solução mais elegante. Não precisamos mais de meio termo e o cliente não é mais o condutor do redirecionamento.
  • URL mais simples. É essa que vai pro livro de endereços e que será passada aos amigos por e-mail.

Veja Funcionando!

(Botou no seu? Então bote o link aê!)

-- AurelioAHeckert e AntonioTerceiro - 12 Nov 2004

Topic revision: r4 - 17 Dec 2005 - 21:51:16 - VicenteAguiar
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Wiki-SL? Send feedback