转移至BCH大致遇到了以下四个问题:
1. Wordpress https开启问题
使用更安全的https做网站向来是笔者的习惯,通常来说使用VPS运行的wordpress开启SSL,只要在后台面板里将WordPress地址(URL)和 站点地址(URL)里的http修改成https,wordpress即会自动将网站所有的图片、js及css自动替换成https,非常简单。
然而当我将原本已开启https的网站迁移到虚拟主机后发现,所有的js和css都是http链接的,无法被浏览器默认加载。而且后台也无法访问,显示重定向次数过多无法被加载。
网上几经搜寻,终于找到以下解决方案。
找到Wordpress网站根目录的配置文件wp-config.php,在里面找下面这段代码:
/* 好了!请不要再继续编辑。请保存本文件。使用愉快! */
/** WordPress目录的绝对路径。 */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
然后在上面这段代码的前一行,加入下面这段代码:
$_SERVER['HTTPS'] = 'ON'; //设置Wordpress全站开启HTTPS。
注意:前面的代码我特意用红色字体说明了代码必须要加在特定的位置,这个位置很关键,加错了位置(尤其是加在了后面的),绝对会出现全站无法通过HTTPS访问的后果。
加完代码后如下图所示:
保存wp-config.php文件,并用FTP上传覆盖。
再重新用HTTPS访问网站试试,如果没有其他问题的话,应该就完全正常了,包括前台网站内容页面和后台登陆及各种功能。
2. 伪静态开启问题
百度云主机配置伪静态有两种,主要取决于使用的web环境,目前支持的有Lighttpd和nginx,前者是在app.conf文件中配置的,后者是在bcloud_nginx_user.conf文件中配置。我所使用的BCH为后者,下面是nginx环境中wordpress伪静态的配置。
步骤如下:
1、可以自行创建配置文件,并保存为“bcloud_nginx_user.conf”,文件内容如下:
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
2、将配置文件上传到主机中
先将bcloud_nginx_user.conf上传至网站根目录下(即webroot目录)
上传完成后需要在BCH控制面板中重载一下站点,即可生效。
3. SMTP邮箱问题
BCH默认是屏蔽mail函数的,因此需要额外使用STMP来发邮件。
这里我所使用的是WPJAM插件,内附了STMP设置工具,修改起来还是很方便的。
4. 站点地图问题
原先的网站使用的是WordPress免插件生成完整站点地图(sitemap.xml)的php代码文中所提到的php站点地图+任务计划每天生成静态xml文件。但是因为迁到了虚拟主机,无法再使用任务计划,因此我改为使用插件来生成站点地图。这里我使用的是XML 站点地图 & 谷歌新闻订阅源这个插件。
本文参考以下网站:
四座博客:https://www.sizuo.org/wordpress-https.html
百度云文档:https://cloud.baidu.com/forum/topic/show?topicId=241555