一个FuelPHP安装的多个站点

时间:2012-04-26 08:40:07

标签: .htaccess multiple-instances fuelphp

我想从一个FuelPHP安装中运行多个站点。这背后的主要驱动力是共享模型和数据库配置的能力。

我已经看到了一些建议,需要更改FuelPHP目录结构,或者通过使用模块。

  • 我真的不想弄乱目录结构。

  • 我认为我完全不了解模块如何帮助我,但我认为最终的配置会比我需要的更复杂。

我提出的解决方案涉及对位于/ public中的.htaccess文件的简单更改。从而我根据主机名修改重写规则。每个站点的控制器和视图都位于主结构的子目录中。

原创.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

多个网站.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{HTTP_HOST} main.loc
    RewriteRule ^(.*)$ index.php/main/$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{HTTP_HOST} admin.loc
    RewriteRule ^(.*)$ index.php/admin/$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{HTTP_HOST} api.loc
    RewriteRule ^(.*)$ index.php/api/$1 [L]
</IfModule>

我的问题是,这是一个可行的解决方案吗?您是否预见到我可能遇到的任何陷阱?

1 个答案:

答案 0 :(得分:0)

我的工作解决方案是并排创建三个FuelPHP应用程序,然后是symlink关键目录,如核心,一些软件包以及模型目录。

一个问题是我的FTP客户端忽略了符号链接,所以我不得不在登台服务器上重新创建它们。当我最终使用SSH自动部署时,这不会成为问题。