使用Cpanel cakephp在新应用程序目录中设置子域

使用Cpanel cakephp在新应用程序目录中设置子域,cakephp,hosting,subdomain,cpanel,Cakephp,Hosting,Subdomain,Cpanel,我使用cakephp(Cpanel托管)工作domain.kz www/app www/cake www/index.php 如何将admin.domain.kz设置为(app2) www/app www/app2 www/cake www/index.php如果cake应用程序是完全独立的,但共享一个cake库,那么以下可能会起作用: 一旦为admin.Domain.kz设置了DNS,您就可以使用cPanel的“附加域”功能 将加载域的文档根目录设置为www/app2文件夹 然后只需确保CAK

我使用cakephp(Cpanel托管)工作domain.kz
www/app
www/cake
www/index.php

如何将admin.domain.kz设置为(app2)

www/app
www/app2
www/cake

www/index.php

如果cake应用程序是完全独立的,但共享一个cake库,那么以下可能会起作用:

一旦为admin.Domain.kz设置了DNS,您就可以使用cPanel的“附加域”功能

将加载域的文档根目录设置为www/app2文件夹


然后只需确保CAKE_CORE_INCLUDE_路径在www/app2/webroot/index.php中指向../../../CAKE

您想要的方式,这将非常困难;您必须在多个位置更改多个文件/文件夹路径。相反,您为什么不尝试创建一个admin文件夹,在其中保存完整的cakephp admin应用程序呢

因此,生成的文件夹结构如下所示:

(domain.kz)
www/app
www/cake
www/index.php

(admin.domain.kz)
www/admin/app
www/admin/cake
www/admin/index.php
<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^admin\.domain\.kz$ [NC]
    RewriteRule ^ - [L]

    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>
然后您必须将您的子域(admin.domain.kz)指向
/www/admin

现在假设您已正确配置域和子域,如果您尝试浏览域,它将正常工作,但如果您尝试访问子域,它将给您一个500错误。别担心。这是意料之中的

primary.htaccess文件正在强制主webroot(www/app/webroot)文件夹提供的所有请求。您必须更改主.htaccess文件(www/.htaccess),如下所示:

(domain.kz)
www/app
www/cake
www/index.php

(admin.domain.kz)
www/admin/app
www/admin/cake
www/admin/index.php
<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^admin\.domain\.kz$ [NC]
    RewriteRule ^ - [L]

    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

重新启动发动机
RewriteCond%{HTTP_HOST}^admin\.domain\.kz$[NC]
重写规则^-[L]
重写规则^$webroot/[L]
重写规则(.*)webroot/$1[L]

请注意,我添加了两行代码,这两行代码告诉您,如果您试图访问您的子域,请停止重写;否则照常重写。干杯

没有注意到,这是6年前问的。我在谷歌上搜索同一个问题,刚解决了它,就跌跌撞撞地问了这个问题没关系,答案不仅适用于最初提出问题的人,也适用于所有有相同问题并寻求解决方案的人。这太棒了。