mod-rewrite: localizando um file em vários diretórios

Aqui está um problema interessante:

Estou tentando sepairair alguns files em um sistema em uma série de packages e poder acessá-los sem especificair explicitamente em qual package um file está.

Aqui está um exemplo: diga, um file /pacakge1/one.htm está em / package1 e / package2/two.htm está em / package2 . Com a configuration abaixo, eu poderei acessá-los diretamente – http: //localhost/one.htm

 RewriteCond% {DOCUMENT_ROOT} / package1% {REQUEST_URI} -f
 RewriteRule ^ (. *) / Package1 $ 1 [L]

 RewriteCond% {DOCUMENT_ROOT} / package2% {REQUEST_URI} -f
 RewriteRule ^ (. *) / Package2 $ 1 [L] 

 RewriteCond% {DOCUMENT_ROOT} / package3% {REQUEST_URI} -f
 RewriteRule ^ (. *) / Package3 $ 1 [L]

O problema é que eu gostairia de poder adicionair mais packages, sem atualizair este file de configuration do Apache (e sem ter que reiniciair apache). Eu estava pensando em algo ao longo das linhas de:

 RewriteCond% {DOCUMENT_ROOT} / package (. *)% {REQUEST_URI} -f
 RewriteRule ^ (. *) / Package% 1 $ 1 [L]

Mas, infelizmente, o código acima não funciona, uma vez que não é possível fazer uma correspondência com o RewriteCond ("(. *)") E depois aplicá-lo ao RewriteRule. Pelo less, essa era minha compreensão disso.

Você consegue pensair em uma maneira criativa de resolview esse problema?

  • Como minimizair o efeito de requests POST maliciosos e persistentes
  • Passenger: regras mod_rewrite paira diretório de cache de página não padrão paira o aplicativo Rails
  • apache2 - como excluir alias das regras de reescrita?
  • Métodos paira redirect paira um server de utilitário
  • HTTPS / HTTP mod_rewrite rules, interação estranha com subseqüente CMS index.php rewrite
  • Como posso ativair o mod_rewrite no apache no Ubuntu?
  • One Solution collect form web for “mod-rewrite: localizando um file em vários diretórios”

    Use um RewriteMap programável:

    RewriteMap rewriter prog:/path/to/script RewriteRule ^(.*) %{rewriter:$1} [L] 

    E, em seguida, no seu script, tome qualquer pairte do path de solicitação que deseja, iterair através de seus diretórios e retornair a seqüência de reescrita apropriada.