Faça com que o .htaccess receba dinamicamente o RewriteBase

4

Dependendo de onde eu instalar meu conjunto de arquivos, parece que RewriteBase parece ter que mudar de acordo se eu instalá-lo em um subdiretório e não no www raiz.

Para meus arquivos de configuração, eu uso algo como o seguinte para permitir que os administradores alterem as configurações de acordo com o ambiente de implantação.

$yaml = file_exists($yamldir) ? Spyc::YAMLLoad($yamldir) : array();
$default = array(
  'hostname' => 'mydomain.com',
  'base_uri' => '/sub/',
  'mysql_host' => 'localhost',
  'mysql_username' => 'root',
  'mysql_password' => '',
  'schema_name' => 'schema1',
  'table_name' => 'table1'
);

$config = array_merge($default, $yaml);

O config.yml é então SVN ou git ignorado para permitir flexibilidade máxima. Parece ser a melhor maneira de fazer isso.

Existe um equivalente para o arquivo .htaccess, para ler (ou melhor ainda, analisar) um arquivo de configuração que pode ou não existir?

Informações básicas

Minhas necessidades de .htaccess são incidentalmente bastante simples neste caso:

RewriteEngine On
RewriteBase /sub

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php [L]

Provavelmente seria melhor se eu usasse um diretório público estilo Rails em vez de ter uma raiz www "efetivamente" aberta, mas eu posso cuidar disso quando necessário. O RewriteBase é necessário no meu caso? Não tenho certeza se é. Mesmo assim, eu posso pensar em casos no futuro onde eu tenho um .htaccess mais elaborado, onde eu seria duramente pressionado para encontrar uma solução para RewriteBase (ou estou errado em pensar isso também?)

    
por Steven Xu 21.11.2010 / 21:59

1 resposta

1

Você provavelmente deve usar um script personalizado para fazer a reescrita: link - Programa de Reescrita Externa

    
por 21.06.2011 / 15:54