【问题标题】:Multiple sites from one FuelPHP installation一个 FuelPHP 安装的多个站点
【发布时间】:2012-04-26 08:40:07
【问题描述】:

我想通过一个 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>

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

【问题讨论】:

  • 这将要求控制器位于 app/classes/controller 的子文件夹中。使用此设置,最好将 main、admin 和 api 设为一个模块,这样您就有了命名空间分离。
  • 您将不得不考虑您将共享所有应用程序配置以及所有公开的资产。它可能会为您提供多个站点,但不会提供多个fuelphp 应用程序!

标签: .htaccess multiple-instances fuelphp


【解决方案1】:

我的工作解决方案是并排创建三个 FuelPHP 应用程序,然后对核心目录、一些包和模型目录等关键目录进行符号链接。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多