Apache2.4中通过.htaccess配置解决Chrome 68之后的浏览器报告网站不安全的问题

2018724日发布的Chrome 68中,Google有一项重大举措就是宣布所有HTTP网站都会被标识为not secure,也就是不安全,并计划在Google搜索结果里降低HTTP网站的权重和排名。

实际的效果如下图:



由于历史原因,我们暂时没有全面升级网站到HTTPS的计划,因此我们通过判断浏览器发送的HTTP_USER_AGENT,要求全部的高于Chrome 68的浏览器全部被重定向到HTTPS请求,来规避这个问题。

具体的配置如下:

#Chrome 68之后的版本,所有HTTP网站都会被标识为not secure,也就是不安全,我们要求之后的版本全部定向到HTTPS
<IfModule mod_rewrite.c>
	RewriteEngine on
	RewriteCond %{HTTPS} off
  
	#默认情况下,条件为与的关系,我们把符合Chromium并且版本号在68之下的版本排除即可
	#下面的expr功能是Apache 2.4新增的功能,2.2版本是不支持的
	# strmatch 大小写区分 strcmatch大小写不区分
	RewriteCond expr "%{HTTP_USER_AGENT} -strcmatch '*Chromium/*'" [OR]
	RewriteCond expr "%{HTTP_USER_AGENT} -strcmatch '*Chrome/*'"
	RewriteCond expr "! %{HTTP_USER_AGENT} -strcmatch '*Chromium/([0-5][0-9]|6[0-7])\.'"

	#腾讯云服务器,由于目前的设置问题,暂时不能强制重定向,本站专属问题,其他网站不需要限制此项
	RewriteCond expr "! %{HTTP_HOST} -strcmatch '182.254.149.39'"

	RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

参考链接


发布者

发表回复

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