【发布时间】:2011-09-14 14:45:47
【问题描述】:
我有一个在 joomla 中构建的网站,它在网络上的网址是:
http://oldsite.com
我被要求将其移至另一个网址 - 域名
http://newsite.com
我应该如何正确地做到这一点而不会弄乱网站和 joomla 安装?
【问题讨论】:
我有一个在 joomla 中构建的网站,它在网络上的网址是:
http://oldsite.com
我被要求将其移至另一个网址 - 域名
http://newsite.com
我应该如何正确地做到这一点而不会弄乱网站和 joomla 安装?
【问题讨论】:
我没有在 Joomla 中找到对其运行所在域的任何引用,因此无需更改任何内容。如果站点名称也发生变化,请更新 /configuration.php。
在实践中,您可能会发现您的内容中有包含完全限定域名的链接,您必须对其进行更改。如下查询可以帮助您找到它们:
SELECT * FROM `jos_content`
WHERE `introtext` like '%mysite.gr%' or `fulltext` like '%mysite.gr%'
如果您使用的是 Linux,请从站点根目录运行以下命令,以确保代码中没有其他引用,例如模板中的硬编码图像路径或 CSS 等:
find . -exec grep -iH "mysite" {} \;
检查站点的 .htaccess 文件以获取任何需要域名的自定义规则。
因此问题被简化为更改现有站点的域,或创建新站点并将 Joomla 安装移动到文件系统中,和/或创建数据库副本。具体步骤取决于您的环境。
【讨论】:
除了cdonner说的,还需要修改configuration.php文件,去掉所有对旧站点的引用
您还需要清空(缓存文件夹)
【讨论】:
您是将网站移动到新主机或帐户还是只是更改域名?
如果您只是更改域名-
您真正需要做的就是保持旧域名指向同一个 Joomla 安装并在 htaccess 中添加一条规则以将域名更新为新域名。这不仅修复了内容或模块内链接中的任何完全限定域名,还修复了旧域中可能存在的任何反向链接。这是您需要添加到 htaccess 的内容 -
RewriteCond %{HTTP_HOST} ^oldsite.com [NC]
RewriteRule ^(.*)$ http://www.newsite.com/$1 [L,R=301]
如果您要将站点移动到新主机,请按照 Hanny 的说明进行操作,并使用 Akeeba 备份来移动站点。
在这两种情况下,您都需要确保旧域正在转发到新域,并且您已设置上述 htaccess 规则来修复任何可能被破坏的链接。
【讨论】:
从一个域移动到另一个域时要做的一件重要事情是确保log_path 和tmp_path 都反映了新的服务器设置,并且它们都可由Apache 写入。如果您不这样做,那么您可能会在登录服务器时遇到问题。
您还需要确保 cache 和 administrator/cache 文件夹也可由 Apache 写入,因为如果您使用文件缓存并且这两个文件夹不可写,Joomla 3.6.+ 会引发致命错误。
【讨论】: