好的,所以我到处搜索,虽然我可以找到很多关于将Drupal安装从子目录中移出的东西但是我找不到将其移动到子目录中的任何内容。我最近接管了这个项目,它是在没有我的情况下开发的,所以我已经在这里登陆了。
问题是该站点是在开发服务器的根目录中开发的,现在我有人想要它在子目录中。我已经更改了htaccess中的基本URL并且我尝试手动更改CSS和DB中的引用,但我不能确定我已经捕获了所有内容(模块等)。
我想知道的是,有没有办法强制相对于root的每个链接相对于root / example。基本上曾经在www.example.com上发布的所有内容现在都在www.example.com/subdirectory。
感谢。
答案 0 :(得分:0)
这有两件事。您已经完成的第一个:配置htaccess以设置包含子目录的基本URL。
不幸的是,您可能会在节点内容(尤其是嵌入的图像)中有相当多的引用停止工作。
对此的一个相对简单的解决方案是包括< base href =“foo.com/dir”/>在您的网站主题中标记,但从长远来看,这不是一个很好的修复。
您可以尝试直接修改数据库,通过以下查询(小心使用,提前备份数据库等):
UPDATE field_revision_body SET body_value = REPLACE(body_value,'devdomain.com','proddomain.com/subdir')(将http://添加到这些查询中)
您可能还需要更新文件表中的路径以反映磁盘上的新位置,尤其是在您使用多站点时。
或者,您是否考虑过使用Backup & Migrate模块将内容从开发服务器移动到新实例的新安装?