pzg's blog

WordPress局域网内外同时访问解决办法

我的配置环境:
服务器架设在家里的电脑上,固定局域网IP:192.168.1.100, 使用电信网络,有公网IP,但80端口不能用,有自己的域名:www.xxx.cn
使用花生壳动态域名更新IP到自己的域名。nginx配置虚拟主机局域网外端口23456,局域网内端口80,主页目录一样。
WordPress放在网站根目录下的wordpress文件夹。设定界面,siteurl和home都设置的http://www.xxx.cn:23456/wordpress
外网访问没问题,内网访问http://www.xxx.cn:23456/wordpress,无法打开,访问192.168.1.100/wordpress也不可以。
按照网上的方法,修改数据库里的siteurl和home为/wordpress, 局域网外访问不正常(有的页面能打开,如管理员界面,但主页打不开)。

我的解决办法:
保持数据里的设置http://www.xxx.cn:23456/wordpress不变。按以下说明修改wordpress\wp-includes\option.php里面的get_option函数。
这里只是一个思路,可以根据具体情况修改。比如你没有使用特殊端口,可以直接将4,5,6行直接写成第5行那样。

function get_option( $option, $default = false ) {                          //自己写一个get_option函数
	$my_option=my_get_option($option,$default);                         //调用原来的函数
	if($option=="siteurl" || $option == "home"){                        //针对siteurl和home做修改,其他不变
		if($_SERVER['HTTP_HOST']!="www.xxx.cn"){                  //如果不是用域名访问的
		$my_option="http://".$_SERVER['HTTP_HOST']."/wordpress";  //就跳转到当前URL里的服务器地址,比如本地的localhost或局域网访问的192.168.1.100
		}
	}
	return $my_option;
}
 
 
function my_get_option( $option, $default = false ) {                       //将原来的get_option函数名称改成my_get_option
 

《 “WordPress局域网内外同时访问解决办法” 》 有 5 条评论

  1. Foam roller Factory 的头像

    哇靠,大佬,学到了

    1. countmeon 的头像
      countmeon

      评论太多了进垃圾评论了,我给你拽出来了哦

      1. headlamps 的头像

        感觉博主可以开班收徒弟的

  2. wank 的头像
    wank

    大神!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注