wordpress动态更改“固定链接”
本文最后更新于 2025年4月17日 中午
问题
wordpress有两个固定链接,定义了站点的访问url,以及各种媒体文件的超链接等。当我们是用动态公网ip来访问wordpress的时候,因为是动态ip的缘故,公网ip可能会一直变,但是这个wordpress的固定链接不会变,就会导致我们的公网ip每变一次,就访问不了wordpress,然后就要上数据库去改那两个固定链接对应的字段(wp_options数据库的siteurl和home字段)。这样对我们这些家庭服务器玩家来说也太不友好了,这该怎么办呢?
固定链接关系阐述
WordPress地址(URL)
是WordPress文件和文件夹存储的地址,包括您的管理页面,插件,主题,媒体文件,媒体文件的超链接等。对应wp_options数据库内“option_name”的“siteurl“字段。
站点地址(URL)
是您网站的面向公众的部分。这是您的访问者将输入的内容,以访问您的网站。对应wp_options数据库内“option_name”的“home“字段。
WordPress程序文件安装在子目录aaa下,那么WordPress地址应填写为https://xxx.com/aaa,访问网址可以是https://xxx.com,那么站点地址应填写为https://xxx.com。
解决办法
编辑wordpress项目的option.php文件
1 | |
在最上方添加如下代码
1 | |

这样就可以实现,每次访问wordpress,wordpress就会自动检测请求头的host字段ip,然后跟着host请求头里的ip更改那两个固定链接,这样这两个烦人的固定链接就会动态的跟着我们的公网ip变化而自动变化了
遗留问题
后来我又发现一个问题,就是文章里的媒体文件(如图片)是用超链接显示的,媒体文件的超链接里的ip不会自动变化,文章的图片会因为ip的变动而失效,影响阅读。目前我还没有想到很好的解决办法。