Php 重写所有图像的scr

Php 重写所有图像的scr,php,wordpress,.htaccess,url,path,Php,Wordpress,.htaccess,Url,Path,我改变主机和一些图片链接到旧的主机帐户,并有403状态。如何在functions.php中重写它们的所有src? 例如,我有scrhttps://dsweb.su/wp-content/uploads/2018/06/Main_demo.png我想更改第一部分,以便路径为https://artweb.su/wp-content/uploads/2018/06/Main_demo.png。包含此部分的所有图像https://dsweb.su/应改为使用此部件https://artweb.su/。我

我改变主机和一些图片链接到旧的主机帐户,并有403状态。如何在functions.php中重写它们的所有src?
例如,我有scr
https://dsweb.su/wp-content/uploads/2018/06/Main_demo.png
我想更改第一部分,以便路径为
https://artweb.su/wp-content/uploads/2018/06/Main_demo.png
。包含此部分的所有图像
https://dsweb.su/
应改为使用此部件
https://artweb.su/
。我想我可以通过htaccess重写来实现这一点,但我不知道如何做到这一点。

如果您可以访问SSH,最简单的方法是使用官方的
search replace
命令。安装说明位于上一个链接中,并且与系统有关,因此我将不在这里详细介绍

首先,确保您有一个数据库备份,并且您知道如何恢复它,以防万一。(我一周做几次这个过程,但最后,这是你的数据库,而我只是互联网上的一个随机陌生人。)

接下来,
cd
插入站点的根目录,我们将运行以下命令。第一个参数(在搜索替换之后)是原始字符串,第二个是新字符串。在做任何更改之前,请继续阅读下面我的注释。第三个参数,
--recurse objects
(这实际上是现在的默认值,但我仍然手动键入)处理在WordPress中非常常见的序列化数据。第四个参数,
--all tables
,告诉搜索者使用数据库中的每个表,即使它没有向WordPress注册。很少不使用此标志。最后一个参数,
--dry run
,表示“不要实际执行,只需测试并告诉我结果。”

wp search-replace "https://dsweb.su" "https://artweb.su" --recurse-objects --all-tables --dry-run
完成后,记下最后一条消息,类似于:

Success: 1,234 replacements to be made.
如果它显示
0 replacements
,则无法找到我们正在搜索的字符串。您需要处理该字符串或在此处发布内容

如果它显示了一个实际的数字,您可以重新运行该命令,删除
--dry run
参数,您应该已全部设置好

关于前两个参数的注记 前两个参数是NOTURL,它们是NOT域!我怎么强调都不过分。它们只是碰巧看起来像URL的任意字符串

如果您的数据库前面还有一个WWW,例如
https://www.dsweb.su
,将找不到。类似地,如果您的数据库具有不安全的URL,例如
http://dsweb.su
,找不到。因此,我建议运行搜索并替换几次

# secure, no www
wp search-replace "https://dsweb.su" "https://artweb.su" --recurse-objects --all-tables --dry-run

# secure, www
wp search-replace "https://www.dsweb.su" "https://artweb.su" --recurse-objects --all-tables --dry-run

# not secure, no www
wp search-replace "http://dsweb.su" "https://artweb.su" --recurse-objects --all-tables --dry-run

# not secure, www
wp search-replace "http://www.dsweb.su" "https://artweb.su" --recurse-objects --all-tables --dry-run
对于替换,始终使用相同的字符串,我们只更改搜索的内容。这些示例都包括
--dry run
参数,我一直建议您使用该参数,以便您知道它将要执行的操作

顺便说一句,你对网站域名的看法并不重要。你会惊讶于你能在其中找到什么。不知怎的,这些额外的版本在某种程度上被卡住了

还有另外两种可能出现的情况,一种非常罕见,另一种并不罕见

罕见的是一个无协议的URL
//example.com
,但这很容易搜索


常见的是一个普通域,
example.com
。您可以搜索它,但请记住,电子邮件地址也是从它开始的,所以在进行替换时必须非常小心,我真的不建议运行它。

您在新服务器上有SSH访问权限吗?@ChrisHaas YeahI假设映像的路径是a你在wordpress数据库中吗?难道你不能运行一个MYSQL查询来更新和替换吗?@AndreaOlivato它们在DB中,但路径是错误的。我想我需要用htaccess制定一个重写规则,但我不知道如何做。它说:错误:这似乎不是wordpress安装。传递--path=
path/to/wordpress
或运行
 wp core下载
。您是否将
cd
放入您的
wp config.php
文件所在的WordPress安装文件夹中?我忘了,但当我这样做并粘贴第一个命令时,什么都没有发生。没有消息,只是输入命令的新空白字段尝试将
--debug
添加到命令中,看看是否可以看到任何明显的错误
e错误:站点遇到严重错误。了解有关在WordPress中调试的详细信息。站点出现严重错误。