1

我已经在 Concrete 5.5.2.1 上安装、配置和构建了一个站点,并且一切正常。我有一个问题,www.ayrshireminis.com/concrete5.5.2.1例如,我的 URL 是 index.htm 文件所在的位置。有没有一种方法可以将代码带回 docroot,而不会破坏所有引用,例如数据库中的图像路径?

考虑到 Concrete 5 的下载包含此目录,我假设这是一些开发人员在使用此 CMS 时的常见问题。

4

2 回答 2

1

我不确定你为什么有一个“index.htm”文件——在crete5安装中没有这样的东西。不过,一般来说,您应该能够毫无问题地移动站点。一些可能的例外是:

  • 根据你移动东西的准确程度,确保你得到每个文件夹/文件。例如,如果您使用 SSH 并执行类似的操作mv concrete5.5.2.1/* ./,那么您将错过该.htaccess文件(因为它是隐藏的)。但是,如果您在谈论 index.htm 文件,我猜您是在 Windows 服务器上而不是在 unix 上,所以这可能不适用。

  • 在旧版本的 Concrete5 中,config/site.php文件中有一个设置DIR_REL,您需要在移动站点时进行更改。例如,如果从concrete5.5.2.1子目录移动到顶层,你会改变define('DIR_REL', '/concrete5.5.2.1); to定义('DIR_REL','');. So take a look in yourconfig/site.phpfile, but if you don't see the定义('DIR_REL'...` 行然后不要担心这一步。

  • 如果您手动输入页面链接或图像的完整 URL,则需要更新它们。通常这不是问题(假设您使用位于富文本编辑器控件上方的 Concrete5 工具栏——例如“插入页面链接”、“插入图像”等)。但是,如果您在移动站点后发现死链接,则可以通过编辑有问题的块手动更新链接,或者如果您想确保一口气更新所有链接,您可以在数据库上运行以下查询(例如通过 PhpMyAdmin):

    UPDATE btContentLocal SET content = REPLACE(content, '/old/base/dir/', '/new/dir/') WHERE content LIKE '%/old/base/dir/%';
    UPDATE btContentImage SET externalLink = REPLACE(externalLink, '/old/base/dir/', '/new/dir/') WHERE externalLink LIKE '%/old/base/dir/%';
    UPDATE btSlideshowImg SET url = REPLACE(url, '/old/base/dir/', '/new/dir/') WHERE url LIKE '%/old/base/dir/%';
    

    小心这些查询!!您将需要对其进行更改/old/base/dir//new/dir/使其对您的特定站点有意义。在运行这些查询之前,您绝对应该积极地备份您的数据库,否则您可能会完全彻底地破坏您的网站,而没有任何方法可以恢复它!!!

于 2012-05-28T20:58:32.037 回答
0

It is actually possible to move the code from a ROOT/concrete5.5.2.1 directory back to the root without running the queries above. I simply moved the code up a directory and everything worked.

于 2012-08-01T15:03:20.217 回答