cakephp app作为静态站点的一部分

时间:2012-10-23 22:24:39

标签: cakephp cakephp-2.0 cakephp-2.1

我有一种独特的情况。 我开发了一个cakephp应用程序,需要将其部署到带有内容的共享服务器。 我知道通常我们应该在webroot中有静态内容,但是不允许这样做,因为这个应用程序需要在以后删除。

它是一个共享主机,我无法更改DocumentRoot或任何管理相关的设置。但是我可以添加.htacces文件。

我的文件按以下顺序排列:


    /webapp
       /app
       /lib
       ...
       /webroot

我想你明白了。 我计划将整个“webapp”文件夹与静态站点一起部署,并具有登录链接,以便人们可以http://mysite.com/webapp/users/login来到该站点。 不幸的是,我不知道这样做的正确方法。我希望按原样保留目录结构,这样有人可以轻松修改并删除它。

感谢任何帮助。

更新: 我忘了提到本地我曾经通过

http://localhost/webapp
访问该网站,该网站基于DocumentRoot / VirtualHost设置。我可能无法在prod上做到这一点,那么我怎么能用路线翻译呢?

2 个答案:

答案 0 :(得分:1)

如果您想使用Apache从子目录中提供CakePHP,那么您正在寻找RewriteBase指令。将指令添加到三个.htaccess文件中的每一个(在CakePHP根目录,appapp/webroot中)。例如,根目录最终看起来像:

<IfModule mod_rewrite.c>
    RewriteEngine  on
    RewriteBase    /webapp
    RewriteRule    ^$ app/webroot/    [L]
    RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

现在,Cake会很高兴在您的webapp子目录中提供服务。

答案 1 :(得分:1)

您需要更新.htaccess个文件以引用/webapp/app/webroot/而不是/app/webroot/

虽然我很想在您的Web服务器的公共可访问目录的根目录中安装CakePHP应用程序,但是使用CakePHP的内置PagesController来提供静态文件,只需删除控制器和当你需要时。