Regra de reescrita do Apache (que já funciona) otimização: algum bom conselho?

1

Aqui está meu objetivo: tenho 9 sites em exibição (nomes alterados, é claro):

  1. we.com
  2. we.fr
  3. doo.com
  4. doo.fr
  5. fpp.com
  6. ke.com
  7. wpp.com
  8. wgg.com
  9. t-y-u.fr

Eu queria cada website:

  1. um diretório para colocar um arquivo de log rotativo. Feito.
  2. atualize os awstats para cada 24 horas e coloque os resultados em um diretório separado:
  - /web/awstats/we_com/
  - /web/awstats/we_fr/
  - /web/awstats/doo_com/
  - /web/awstats/doo_fr/
  - /web/awstats/fpp_com/
  - /web/awstats/ke_com/
  - /web/awstats/wpp_com/
  - /web/awstats/wgg_com/
  - /web/awstats/t_y_u_fr/
  1. faça apenas um host virtual para um site de estatísticas genéricas e dê um nome, redirecione para o site de boas estatísticas. Se você digitar uma dessas URLs, o caminho base do site deverá ser alterado de acordo:
 1. http://stats.we.com/ change the base directory to /web/we_com
 2. http://stats.we.fr/ change the base directory to /web/we_fr
 3. http://stats.doo.com/ change the base directory to /web/doo_com
 4. http://stats.doo.fr/ change the base directory to /web/doo_fr
 5. http://stats.fpp.com/ change the base directory to /web/fpp_com
 6. http://stats.ke.com/ change the base directory to /web/ke_com
 7. http://stats.wpp.com/ change the base directory to /web/wpp_com
 8. http://stats.wgg.com/ change the base directory to /web/wgg_com
 9. http://stats.t-y-u.fr/ change the base directory to /web/t_y_u_fr

Eu fiz isso, mas é muuuito longo: para cada site, aqui estão as regras:

    ###########################################
    # site we.com
    RewriteCond %{HTTP_HOST}  ^stats\.we\.com
    RewriteRule ^/$ /we/awstats.we.xml [QSA,L]
    # change other dirs to the base dir :
    RewriteCond %{HTTP_HOST}  ^stats\.we\.com
    RewriteCond %{HTTP_HOST}  ^stats\.we\.com
    RewriteRule ^/(.*) /wheeg/$1 [QSA,L]

se você tiver uma boa maneira de otimizá-lo, eu gostaria de vê-lo (lembre-se de que há um site com "-" e eles precisam ser alterados para "_")!

    
por Olivier Pons 18.06.2009 / 15:52

3 respostas

1

Você não pode usar - em vez de _ para t-y-u.fr? porque você poderia usar uma configuração única de vhost em massa como esta para todos os seus domínios:

<VirtualHost *>
    VirtualDocumentRoot /web/awstats/%-2_%-1/
    ServerName anything
    ServerAlias stats.we.com stats.we.fr stats.doo.com ...
</VirtualHost>

Verifique o link para obter mais documentação. Pode ser adicionando uma regra de reescrita que você pode alterar - por _ no caminho do DocumentRoot. Isso precisa de algumas tentativas.

Mas geralmente, a árvore é feita assim:

/web/domaine.tld/public/
/web/domaine.tld/public/www/
/web/domaine.tld/public/stats/
/web/domaine.tld/public/..
/web/domaine.tld/logs/

E com um vhost do domaine usando o VirtualDocumentRoot você pode fazer o que quiser.

    
por 18.06.2009 / 16:24
2

Primeira regra de otimização: não. Segunda regra de otimização (somente uso avançado): ainda não.

Se já estiver funcionando e não estiver causando problemas de desempenho ou manutenção, eu ficaria bem sozinho.

    
por 18.06.2009 / 16:26
1

Também tenha em mente que colocar as regras do mod_rewrite em arquivos centrais de configuração do apache é mais eficiente do que usar arquivos .htaccess, já que o arquivo .htaccess precisa ser relido toda vez que o site é solicitado.

    
por 18.06.2009 / 18:11