根据我安装我的文件集的位置,似乎RewriteBase
似乎必须相应地改变,如果我安装在一个子目录而不是在www的根。
对于我的configuration文件,我使用类似下面的内容来允许pipe理员更改设置以适应其部署环境。
$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文件的等价物,以读取(或更好地parsing)可能存在或可能不存在的configuration文件?
背景信息
在这种情况下,我的.htaccess需求非常简单:
RewriteEngine On RewriteBase /sub RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [L]
如果我使用Rails风格的公共目录,而不是有效地“打开”www根,那可能是最好的,但是我可以根据需要来处理。 RewriteBase甚至在我的情况下是必要的? 我不确定。 即使如此,我还是可以考虑将来有更复杂的.htaccess的案例,在那里我很难findRewriteBase的解决方法(或者我也是这么想的)。
您可能应该使用自定义脚本来进行重写: http : //httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritemap – 外部重写程序