随时随地查找和替换域名?

时间:2011-02-09 作者:agileapricot

请仔细阅读此内容,因为它不是您所期望的。

我正在开发子域中构建我的站点。我不想在将站点移动到活动区域后再经历运行查找和替换插件的复杂过程(因为在某些序列化数据上这经常会出错)。

我想将URL输入到页面中,因为它们将出现在实时站点上(它们需要是RSS提要的绝对URL。因此,我需要一个使用PHP或Javascript的方法来查找和替换http://mysite.com 具有http://dev.mysite.com 在输出页面上。这样,我仍然可以测试和预览网站,当它上线时,我只需取消对代码的注释。我不担心设置中的URL,因为它总是很容易更改。

我希望这是有意义的。

谢谢

4 个回复
SO网友:Denis de Bernardy

我在wp配置中使用这两个定义。php文件:

define(\'WP_HOME\', \'http://dev.mysite.com\');
define(\'WP_SITEURL\', \'http://dev.mysite.com\');
注意尾部的斜杠(或者更确切地说,缺少斜杠),否则你会得到永久链接错误。

还请注意,如果在添加内容时插入图像等,它们实际上会按原样使用。

SO网友:Rarst

这可能对JS更有意义,但这不是我的领域。

在PHP中,您可以buffer output 在两个挂钩之间(例如从init 迟到wp_footer), 更换链接和回显。

而且使用起来也很方便hosts 将实域重定向到测试服务器的IP。

SO网友:user3034

这并不能直接满足您的需求,但如果您要切换子域,您应该创建链接、图像等,而不在其中创建域。您应该添加一个筛选器来删除域。那么您将拥有以“/”not开头的根绝对链接http://www.domain.com/\'。

这是一个开始how to make permalink root relative.

但是,当您在管理中保存内容(通过挂钩)时,您还需要运行此功能,以便可以剥离绝对链接并使其成为根相对链接。

SO网友:editor

事实上,这并不像我预期的那样。我习惯于静态地这样做。使用该技术,除了更改wp config中的定义之外。php您必须搜索/替换数据库中的条目。要做到这一点,只需获取一个MySQL转储,并使用以下代码运行以下脚本script.sh dump.sql > new_dump.sql. 加载新转储。sql转换到DB中,您应该可以很好地使用它。

#!/bin/sed -f
s/\'\\([^\\\\\']*\\)old.domain.com\\([^\\\\\']*\\)\'/\'\\1new.domain.com\\2\'/g
您可以尝试在preg_replace() 在飞行中执行此操作,但您可能会遇到问题。

结束

相关推荐