CakePHP 1.3安装在子目录中

ape*_*ari 1 deployment .htaccess install cakephp subdirectory

我必须在子目录中的共享主机上部署我的cakephp 1.3标准安装.

类似问题的其他答案对我不起作用.

在localhost上,我将我的开发空间作为虚拟主机

myproject.local.com
Run Code Online (Sandbox Code Playgroud)

在文件系统上是 /var/www/myproject/

那里有cakephp

所以

/app
/app/webroot etc
Run Code Online (Sandbox Code Playgroud)

我启用了mod_rewrite.

如果我想,使用相同的虚拟主机,将我的cakephp应用程序放在下面/subfolder/,然后访问它myproject.local.com/subfolder/,我必须做什么?

请记住,我无法访问apache配置文件,我不能在root上放任何东西.

有任何想法吗?

可以使用RewriteBase仅修改子文件夹/,子文件夹/ app /,子文件夹/ app/webroot中的htaccess文件吗?

小智 6

你可以把整个cakephp安装在子文件夹中.如果您的服务器允许覆盖.htaccess,那么将其添加到/ subfolder /中的.htaccess将有助于

<IfModule mod_rewrite.c> 
  RewriteEngine  on 
  RewriteRule ^/subfolder$       subfolder/app/webroot/     [L] 
  RewriteRule ^/subfolder/(.*)$ subfolder/app/webroot/$1  [L] 
</IfModule>
Run Code Online (Sandbox Code Playgroud)

但这会使您的应用和蛋糕文件夹可以从网络访问.. NotGood(TM)

另一种我尚未尝试过的方法,但我猜测它的工作原理是将webroot中的文件复制到/ subfolder /然后编辑index.php以定义蛋糕库的位置

define('APP_DIR', './app');
define('CAKE_CORE_INCLUDE_PATH', '/path/to/cake_1.3');
Run Code Online (Sandbox Code Playgroud)

然后编辑routes.php以添加将子文件夹考虑在内的自定义路由

Router::connect('/subfolder/:controller/:action*');
Run Code Online (Sandbox Code Playgroud)

您可能需要稍微玩一下路线才能使其正常工作.祝好运.