2016年11月25日星期五

DisplayPort连接显示器导致窗口大小总是重置的解决方案

最近用上了4K显示器,通过DisplayPort线跟主机相连。如果一段时间没有输入的话,显示器会黑屏并进入睡眠模式,等到再次激活进入系统,就发现窗口大小都变小了,而且都集中在屏幕左上角。
这个问题挺烦的,需要每次手动调整窗口大小。网上说这是DisplayPort在Windows系统下的通病,研究一番找到了一个解决方案:

打开注册表编辑器“regedit.exe”,查找“DMMEnableDDCPolling”,凡是值为“1”的改为“0”即可。

2016年11月24日星期四

用上SSD了

今天换上了三星SSD硬盘,Win10速度瞬间提升不少~~
一般SSD厂商都会附赠光盘,其中有数据迁移工具,三星提供的是Samsung Data Migration Software。这个工具可以将原来HDD中的系统无缝克隆到SSD中,然后重启在BIOS启动项中选择SSD硬盘启动,进入桌面后需要把原来HDD的系统分区格式化,否则下次启动还得在BIOS手动选择SSD启动(反正系统已经迁移过来了,留着也没用,格掉可以多出一个分区用,何乐而不为呢)。
不得不说这个傻瓜式的工具很好用,不用重装系统,而且SSD读写速度超快,几分钟(视原系统分区已使用的空间大小略有不同)就能迁移完成继续工作。

远程重新获取IP

远程桌面下不能直接“禁用/启用”网络连接,不然远程桌面就断开了。。。
可以创建一个批处理文件实现远程换IP:

ipconfig -release
netsh interface set interface name="Ethernet" admin=DISABLED
ping 127.0.0.1 -n 5
netsh interface set interface name="Ethernet" admin=ENABLED
ping 127.0.0.1 -n 5
ipconfig -renew

中文系统interface name="本地连接",英文系统则是interface name="Ethernet"

2016年11月23日星期三

WordPress多域名绑定及HTTPS支持

当有多个域名想要绑定的同一个WordPress上时,可在根目录的wp-config.php中添加以下两行:

define('WP_SITEURL', (isset($_SERVER['HTTPS'])?'https://':'http://').$_SERVER['HTTP_HOST']);
define('WP_HOME', (isset($_SERVER['HTTPS'])?'https://':'http://').$_SERVER['HTTP_HOST']);
注意:需放在 require_once(ABSPATH . 'wp-settings.php'); 之前。

不过,如果通过反向代理访问时,根据$_SERVER['HTTPS']判断就会出问题。例如,原始博客地址是http://abc.com,用https://def.com反向代理原始博客,那么通过https://def.com访问时,$_SERVER['HTTPS']是未设置值的(unset);此时可通过$_SERVER['HTTP_X_FORWARDED_PROTO']来判断。
$_SERVER['HTTPS'] = isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https' ? 'on' : 'off';
define('WP_SITEURL', ($_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://').$_SERVER['HTTP_HOST']);
define('WP_HOME', ($_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://').$_SERVER['HTTP_HOST']);
注意:同样需放在 require_once(ABSPATH . 'wp-settings.php'); 之前。

使用Cloudflare代理加速时,这个问题复杂一些,如果Crypto中SSL设置为Full,则用上面方法通过$_SERVER['HTTP_X_FORWARDED_PROTO']判断即可;但是,如果SSL设置为Flexible时,$_SERVER['HTTP_X_FORWARDED_PROTO']的值可能为http而不是https,此时要通过$_SERVER['HTTP_CF_VISITOR']判断,其值为{"scheme":"https"}
$_SERVER['HTTPS'] = (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https') || (isset($_SERVER['HTTP_CF_VISITOR']) && strpos($_SERVER['HTTP_CF_VISITOR'], 'https') !== false) ? 'on' : 'off';
define('WP_SITEURL', ($_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://').$_SERVER['HTTP_HOST']);
define('WP_HOME', ($_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://').$_SERVER['HTTP_HOST']);
重要事情说三遍:需放在 require_once(ABSPATH . 'wp-settings.php'); 之前。

较新的博文 较旧的博文 主页