WordPress 设置多域名可访问

如果你使用过 wordpress,并更换过域名,那么你可能经历过循环重定向进不去 wordpress 的情况,原因就是数据库的 wp-options 表的 siteurl 和 home 选项还依然是旧的域名。

如果只能设置数据库来指定域名,这样的话就不能设置多域名了,这里分享一个多域名的访问的方式,并且静态资源都将通过不带域名的根路径访问。

只需要修改网站根目录的 wp_config.php 的文件,以下内容在:require_once ABSPATH . 'wp-settings.php'; 前面设置。

# 方式一、 确定全部为 https
define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']);
# 方式二、防止恶意解析
$pattern = '/^[a-z0-9]+\.amjun\.com$/';
$domain = array("www.amjun.com", "amjun.com");
if (in_array($_SERVER['HTTP_HOST'], $domain) || preg_match($pattern, $_SERVER['HTTP_HOST'])) {
define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']);
}

注意:没有如下设置可能进不去后台。(猜测后台默认不开启ssl访问,所以访问到 http 链接,然后一直跳转)

# 强制后台和登陆使用 ssl,这样后台发起的请求全部都是 https
$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

静态资源也设置为根路径,这样的话可以媒体链接都将不带域名。

define('WP_CONTENT_URL', '/wp-content');

64ca76e37e043

提醒:本文发布于402天前,文中所关联的信息可能已发生改变,请知悉!

阅读剩余
THE END