В зависимости от того, где я устанавливаю свой набор файлов, кажется, что RewriteBase
похоже, должен измениться соответствующим образом, если я установлю его в подкаталог, а не в корень www.
Для моих файлов конфигурации я использую что-то вроде следующего, чтобы позволить администраторам изменять настройки в соответствии со своей средой развертывания.
$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);
Затем config.yml игнорируется SVN или git, чтобы обеспечить максимальную гибкость. Кажется, это лучший способ сделать это.
Есть ли эквивалент файла .htaccess для чтения (или, что еще лучше, синтаксического анализа) файла конфигурации, который может существовать или не существовать?
Исходная информация
Между прочим, мои потребности в .htaccess в этом случае довольно просты:
RewriteEngine On
RewriteBase /sub
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L]
Вероятно, было бы лучше, если бы я использовал общедоступный каталог в стиле Rails вместо эффективного «открытого» корневого каталога www, но я могу позаботиться об этом по мере необходимости. Нужна ли вообще RewriteBase в моем случае? Я не уверен, что это так. Тем не менее, я могу вспомнить случаи в будущем, когда у меня будет более сложный .htaccess, где мне будет сложно найти обходной путь для RewriteBase (или я тоже ошибаюсь, думая об этом?)
Вероятно, вам следует использовать собственный сценарий для перезаписи: http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritemap - Внешняя программа перезаписи