我想从一个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>
我的问题是,这是一个可行的解决方案吗?您是否预见到我可能遇到的任何陷阱?
答案 0 :(得分:0)
我的工作解决方案是并排创建三个FuelPHP应用程序,然后是symlink关键目录,如核心,一些软件包以及模型目录。
一个问题是我的FTP客户端忽略了符号链接,所以我不得不在登台服务器上重新创建它们。当我最终使用SSH自动部署时,这不会成为问题。