将 Codeigniter 项目从主域复制到子域

Posted

技术标签:

【中文标题】将 Codeigniter 项目从主域复制到子域【英文标题】:Copy Codeigniter project from Main domain to subdomain 【发布时间】:2015-03-10 00:49:59 【问题描述】:

我想为我当前运行的 codeigniter 网站创建一个副本,例如 http://www.example.com 并将副本放入 新的子域“beta”,例如 http://beta.example.com用于测试目的和站点修改,以便实时站点不会因修改而不受管理。

所以它是关于制作一个网站副本以用于测试目的和在 beta 子域下进行修改。我该怎么做?

这是我在 beta 子域中的文件结构

【问题讨论】:

哦,既然你用的是CodeIgniter,那么db配置应该在文件application/config/database.php 【参考方案1】:

在你的主目录中使用这个 htaccess 文件

对于像 www.website.com 这样的网址

RewriteEngine on
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule .* /index.php/$0 [PT,L] 

对于您的测试链接,如 www.website/test,请使用以下代码

RewriteEngine on
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule .* /test/index.php/$0 [PT,L] 

【讨论】:

【参考方案2】:

首先使用您的 cpanel 添加一个新的子域:http://documentation.cpanel.net/display/ALD/Subdomains。添加子域时,您必须输入其文档根路径。

如果您的网站使用数据库,那么您需要使用 cPanel 中的 mysql 数据库选项创建一个新数据库。创建数据库并为其分配用户后,打开 phpMyAdmin,转到原始数据库,转到 phpMyAdmin 中的操作选项卡,然后将该数据库复制到您创建的新数据库中。

打开文件管理器并复制与您的主要网站相关的所有文件。将它们粘贴到子域的文档根目录中。

如果您的网站使用数据库,您最终必须修改网站代码中的数据库连接参数。您可以通过 grep 命令轻松找到 config 的位置:

grep -r "mysql" /public_html/subdomain/

现在,当您打开 http://beta.example.com 时,您应该会看到副本网站。

【讨论】:

出现此错误:您无权访问此服务器上的 /。此外,在尝试使用 ErrorDocument 处理请求时遇到 500 Internal Server Error 错误。 你的 base_url 设置是否正确? ***.com/questions/11792268/… base url 根据主站设置 不,应该设置为子域。 如果仍然出现错误,请使用您服务器的错误日志找出 500 Internal Server Error 的原因,然后您需要更正它。

以上是关于将 Codeigniter 项目从主域复制到子域的主要内容,如果未能解决你的问题,请参考以下文章

301从主域(www和非www)重定向到子域

AWS Cloudfront + 负载均衡器,url 从主域更改为负载均衡器子域

.htaccess - 将旧网站重定向到主域,但也将一些内容重定向到主域的子域

如何将网站从子域转移到主域

如何将任何子域请求重定向到asp.net中的主域

将任何子域重定向到主域上的页面