【问题标题】:Wordpress change image url mappingsWordpress 更改图像 url 映射
【发布时间】:2018-04-14 20:09:59
【问题描述】:

我继承了 WordPress 项目,帖子中的所有媒体(图像)看起来像这样:

http://example.com/image/news/name.jpg

即使站点的根设置为http://example.com/news 并且图片实际上保存在wp-content/uploads/2017...

现在我把这个网站从共享主机移到我自己的服务器上,我试图通过如下所示的 nginx 配置来服务它:

location ^~ /news {
    root /var/www/html/;
    index index.php index.html index.htm;
    try_files $uri $uri/ @wp;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass             unix:/var/run/php/php7.1-fpm.sock;
        fastcgi_param  
        SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

除图片网址外,其他一切都有效。

为什么旧的 URL 看起来和原来的一样?重写它们的是什么?

我该如何使用 nginx 和 /image 位置来解决这个问题?

【问题讨论】:

  • 嗨。我添加了一个可能的解决方案。你有机会看看吗?

标签: wordpress


【解决方案1】:

您可以在 nginx 配置中使用别名:http://nginx.org/en/docs/http/ngx_http_core_module.html#alias

location /image/news/ {
    alias /wp-content/uploads/2017/;
}

您可能需要根据文件夹的日期进行修改。

问题:

您是否在渲染页面(查看源代码)中观察到图像路径http://example.com/image/news/name.jpg,或者在后期编辑的原始后端数据/文本模式下观察到。

如果它在原始数据中:

您提到的只是迁移站点,而不是给 nginx 额外的工作,所以为什么不在文本编辑器中打开 SQL 文件,然后查找并替换字符串路径并重新导入数据库。 (您实际上应该导出当前数据以备不时之需,以防您已经进行了编辑。保留一份副本作为备份)

以上是推荐的方法,因为您可能会在下一个可选方法中可能遗漏的某些字段中查找和替换。

或者,您可以在帖子表上运行 SQL REPLACE 命令。请先备份数据库。

这是一个替换posts 表的示例。相应地修改{..}中的值。

UPDATE `{prefix}_posts` SET `post_content` = REPLACE( `post_content` , '{old-path}', '{new-path}' ) WHERE `post_content` LIKE '%{old-path}%'

...

但是,如果原始数据中的路径已经正确,只有呈现的 HTML 路径不同。

然后似乎插件或主题代码正在修改图像路径。

运行文件搜索字符串image/news/ 并查看是否出现任何文件。还要在数据库 sql 文件中进行搜索。它可能会对正在发生的事情有所了解,然后您可以相应地修改这些值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多