强制用户使用无www前缀HTTPS访问站点的最优实现方法
重定向规则优化方案
原规则存在的问题
- 重复声明
RewriteEngine,冗余无效 - 部分访问场景会触发两次重定向(比如访问
http://www.sample.com会先跳https://www.sample.com,再跳https://sample.com),影响访问速度和SEO权重传递 - 规则匹配逻辑冗余,执行效率低
优化后的重定向规则
将以下规则放在整个.htaccess文件所有Rewrite规则的最靠前位置,替换掉你原来的两段www转非www、http转https的规则即可,所有场景都只会触发1次301重定向:
# 全场景统一重定向到 https://sample.com RewriteEngine On # 判断域名不是sample.com 或者 未开启HTTPS RewriteCond %{HTTP_HOST} !=sample.com [NC,OR] RewriteCond %{HTTPS} off # 兼容CDN/反向代理的SSL识别 RewriteCond %{HTTP:X-Forwarded-SSL} !on RewriteRule ^(.*)$ https://sample.com/$1 [R=301,L]
其他配置优化建议
- 你当前配置里重复定义了两次不同的
Cache-Control规则,建议合并为一份,避免规则优先级冲突导致缓存策略不生效 - 整个.htaccess文件只需要保留一处
RewriteEngine On声明即可,其余重复的可以直接删除 - 现有的防盗链、恶意爬虫拦截、不安全请求方法拦截、安全过滤规则逻辑正常,无需修改
内容的提问来源于stack exchange,提问作者Bry
相关产品推荐
相关产品推荐

