WP有关URL二三事

有关设置->通用中的URL设置、通过其它域名访问博客、404跳转主页和站点地图生成。

环境

  • CentOS 7
  • WordPress 5.1.12

有关设置->通用中的url相关选项

有两个相关选项,分别是Wordpress Address和Site Address。二者在数据库中的位置分别是wp_options表中的siteurl和home表项。前者是WP在服务器中的安装地址,准确说应该是通过反向代理服务器能直接访问到的地址?WP的主题通过siteurl开头的路径访问资源,前者不对网站或者进不去或者许多资源加载不出来。 后者是用户访问时输入的地址,也对应某些返回主页键返回到的地址,后者不对的话无法编辑Posts或Pages,会报Update Failed。

如果网站已经进不去了,改回来的办法:进服务器,mysql -uroot -p进mysql,USE wordpressdb进wp的数据库(如果忘了wp的数据库是哪个,show databases;查看),SELECT * FROM wp_options WHERE option_name='siteurl';查看表项,UPDATE wp_options SET option_value="正确的地址" WHERE option_name="siteurl";改成正确的。另外似乎使用IP地址的话,前面必须加http://,不然访问有些资源的时候会访问到IP地址/IP地址/资源而出错。

通过 github pages 进行域名跳转

参考

建一个仓库,名为username.GitHub.io。里面放一个index.html,写js跳转语句;一个CNAME,写域名。域名服务商那设置CNAME解析到username.GitHub.io,这样就实现了访问域名A跳转到域名B。

然后如果使用域名A访问B下的资源,因为GitHub Pages里没有B下的资源,会跳转到Github的404页面。可以利用Github Pages的自定义404页面实现跳转到这一资源。具体而言,可以利用Purl获取到请求的地址,取出后缀拼到B后面,实现通过域名A访问B下的资源。

不过不能将WP的siteurl设置为域名A,资源本身的绝对地址在B下。很多东西会加载不出,也无法登录。另外,域名A下的内容将无法被搜索引擎爬取,因为GitHub Pages在跳转之前就会返回一个404,爬虫就放弃了。

但总之,这种方式可以实现通过域名A访问B下的文章等,还是非常方便的。

通过插件实现404跳转回主页

我原先的博客写的一些东西被搜索引擎收录了,但是现在的这个博客并无这些内容。显然无法在GitHub Pages里判断有哪些内容、没有哪些内容。通过Github Pages跳转后,WP可以通过插件容易地实现跳转至主页。

通过插件生成sitemap

使用All in One SEO生成sitemap,安装后点击激活就会进入一个非常漂亮友好的设置界面,简单设置后就可以生成sitemap了。

Leave a Reply

Your email address will not be published. Required fields are marked *