Drupal - 站点转移。更改数据库中的绝对 URL?
Posted
技术标签:
【中文标题】Drupal - 站点转移。更改数据库中的绝对 URL?【英文标题】:Drupal - Site transfer. Change absolute URLs in the database? 【发布时间】:2015-09-03 20:31:04 【问题描述】:我在已插入绝对链接的 drupal(块、页面等)中有内容。我移动了站点,块和页面中的 url 仍然指向旧域。
如何在数据库中更改它?我需要定位哪个数据库表?我想做类似的事情:
UPDATE table SET content = REPLACE(content,'www.domain.com/old','www.domain.com/new');
谢谢!
【问题讨论】:
【参考方案1】:Drupal 它本身不使用绝对路径(就像 WordPress 那样),因此移动“普通”Drupal 网站不需要像这样的任何干预。 我的建议是始终对内部链接使用根相对路径。
基本上,您必须用新域替换旧域的所有外观,因此最好将数据库导出到 sql 文件,在该 sql 文件上进行搜索/替换,然后将更改的转储文件导入新域数据库。也许在数据库导出之前清除所有缓存以减少数据库大小...
【讨论】:
绝对网址可以存储在缓存中。 P.S.您不必搜索整个绝对路径...只需搜索旧域并将其替换为新域即可。相对路径将保持不变。【参考方案2】:-
首先备份您的数据库!
安装Adminer script 并在整个数据库中搜索以前的(旧)域名。如果您喜欢命令行界面,或者构建 SQL 查询来搜索所有表
请参阅How to search and replace all instances of a string within a database? 了解如何替换整个数据库中的字符串。
【讨论】:
通过数据库转储进行搜索/替换不是更容易吗? 这是第 3 步中描述的第一种方法。这并不总是最佳解决方案,因为数据库的大小可能非常庞大。 不错,但值得一试。【参考方案3】:对数据库进行这种更改可能不是最好的做法,为什么不尝试在 .html 模板文件的 head 标记中使用 base html 标记:
<head>
<base href="http://www.domain.com/new"
</head>
有关此标签的更多信息,请参阅:http://www.w3schools.com/tags/tag_base.asp
【讨论】:
以上是关于Drupal - 站点转移。更改数据库中的绝对 URL?的主要内容,如果未能解决你的问题,请参考以下文章
更改 cPanel 密码后,Drupal 站点上的访问被拒绝