为什么我的Wordpress RSS提要显示IP地址和帖子ID,而不显示完整URL?

时间:2019-02-05 17:28:19

标签: wordpress feed rss2

在我的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,然后再指向域。 Google必须先对其进行了爬网,然后才能将其添加到控制台。上次爬网是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验证程序没有错误。还将网站的所有版本添加到Google控制台并进行了验证,并将首选版本设置为https://www。还提交了从Yoast插件生成的站点地图URL https://www.example.com/sitemap_index.xml。我检查了站点地图,看起来不错。

尝试重建永久链接。没有解决仍然显示IP和帖子ID的RSS feed问题。困惑。

1 个答案:

答案 0 :(得分:1)

WordPress永久链接旨在唯一。即使您更改了首选域,它们也不会改变。新值使用首选域,但是旧值将保留原始值,除非您手动编辑值。您可以使用域的新值来手动编辑wp_posts表以更新guid,您将重回正轨。

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

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

但是,这不会重建路径部分。您可以使用此元素(腔清空器)对根元素执行此操作(只要您未更改默认设置):

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更新为对所有没有父级的post_namepost类型使用新的协议,域和当前page值({ {1}} = 0)。请注意,指向子帖子/页面和自定义永久链接的URL仍然会给您带来问题,并且需要密切注意以确保正确重建它们。