0

对于我的 Wordpress 网站 example.com/feed/,我注意到我的 RSS 显示 IP 地址并使用帖子 ID,而不是显示实际 URL。它还显示 http 而不是 https。这是缓存问题吗?我不知道为什么,或者如何解决。目前,RSS 提要显示此内容的页面链接:

<guid isPermaLink="false">http://44.78.4.233/?p=3993</guid>

代替

<guid>https://www.example.com/my-post/</guid>

在注意到 Google Search Console 显示了大量甚至不存在的内部页面链接并且都使用 IP 地址后,我注意到了这个问题。不确定这是否与我的提要有关。

当我第一次设置站点时,我使用的是 IP,然后再指向域。在我将它添加到控制台之前,谷歌一定已经抓取了它。最后一次抓取是 1 月 14 日,就在我指出域名之前。这是我的 .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^44\.78\.4\.233$
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Options -Indexes

网站工作正常。将所有流量重定向到首选 https。还将IP重定向到https。W3C 验证器上没有错误。还将所有版本的站点添加到谷歌控制台并验证,并将首选版本设置为https://www。还提交了从 Yoast 插件生成的站点地图 URL https://www.example.com/sitemap_index.xml 。我检查了站点地图,它看起来不错。

尝试重建永久链接。没有修复仍然显示 IP 和帖子 ID 的 RSS 提要问题。困惑。

4

1 回答 1

1

WordPress 永久链接旨在独一无二。即使您更改首选域,它们也不会改变。新值使用首选域,但旧值将保留原始值,除非您手动编辑这些值。您可以手动编辑wp_posts表格以guid使用域更新新值,您将回到正轨。

您可以使用以下命令将所有条目中的协议和 IP 替换为您喜欢的 SQL 编辑器中的新协议和域:

UPDATE `wp_posts` SET `guid`=replace(`guid`,'http://1.1.1.1/','https://example.com/');

不过,这不会重建路径部分。您可以使用这个 ( caveat emptor )对根元素执行此操作(只要您没有更改任何默认值):

UPDATE `wp_posts` SET `guid`=replace(`guid`,'http://1.1.1.1/','https://example.com/' + `post_name`) WHERE (`post_parent`=0 AND `post_type` IN ('post','page'));

这将更新guid以使用新协议、域和所有没有父级 ( =0)的&类型的当前post_name值。请注意,子帖子/页面的 URL 和自定义永久链接 slug 仍然会给您带来问题,并且需要密切注意以确保正确重建它们。postpagepost_parent

于 2019-02-05T17:37:08.920 回答