CakePHP - 是否可以在插件级别运行网站?

时间:2013-07-05 02:26:57

标签: cakephp plugins web

这是文件夹设置:

www.blog.com以root身份使用 app / plugins / blog / webroot

www.gallery.com以root身份使用 app / plugins / gallery / webroot

这可能吗?

2 个答案:

答案 0 :(得分:0)

您应该能够将服务器上的任何文件夹用作根文件夹,只需在服务器的hosts文件中进行配置即可。如果它是您自己的服务器并且它正在运行apache,您将在以下位置找到它:

  

阿帕奇\ CONF \额外\的httpd-vhosts.conf

如果您的域名和托管位于同一家公司,那么您很幸运,因为服务器上的哪个文件夹应该是根文件夹的设置。这实际上取决于公司和您购买的服务水平。我会查看他们的常见问题解答。

答案 1 :(得分:0)

一个插件的webroot,除非你自己添加了一个合适的(和复杂的)index.php文件,否则不会#34;工作"作为doc root。

定义适当的路线。

当您请求blog.com时 - 只需定义适当的路线,例如:

Router::connect('/', array(
    'plugin' => 'blog',
    'controller' => 'blog',
    'action' => 'index'
);

Router::connect('/*', array(
    'plugin' => 'blog',
    'controller' => 'blog',
    'action' => 'view'
);

如果您希望相同的应用程序响应您的两个应用程序(通常不是一个好主意),那么您可以使用HTTP_HOST在加载一组路由或其他路由之间进行选择:

<?php // routes.php file

if (env('HTTP_HOST') === 'blog.com') {
    require 'routes_blog.php';
} else {
    require 'routes_gallery.php';
}

这不是一个好主意,因为它很容易导致缓存混乱等问题。更好的想法是简单地单独处理每个应用程序是否使用相同的代码。