如何通过.htaccess强制全站URL走HTTPS仅排除/images目录
操作步骤
1. 修改WordPress后台站点配置
登录WordPress后台,进入「设置」-「常规」页面,将 WordPress地址(URL) 和 站点地址(URL) 都修改为HTTPS开头的域名(格式参考https://你的域名.com),保存设置。
你当前将站点域名配置为HTTP,和需求冲突,必须先修改此处配置。
2. 替换.htaccess重定向规则
删除现有.htaccess中以下错误的重定向代码段:
RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
在# BEGIN WordPress上方插入以下适配Cloudways环境的重定向规则:
RewriteEngine On # Cloudways使用反向代理,需通过X-Forwarded-Proto识别实际请求协议 RewriteCond %{HTTP:X-Forwarded-Proto} !https # 排除/images目录 RewriteCond %{REQUEST_URI} !^/images/.*$ # 其余请求强制跳转HTTPS RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302] # 如果/images目录使用HTTPS访问,强制跳回HTTP RewriteCond %{HTTP:X-Forwarded-Proto} =https RewriteCond %{REQUEST_URI} ^/images/.*$ RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]
3. 验证生效
修改完成后清空Cloudways平台的站点缓存、浏览器缓存,依次测试两类场景:
- 访问站点首页、文章页等非/images路径的HTTP地址,确认自动跳转到HTTPS
- 访问/images目录下资源的HTTPS地址,确认自动跳回HTTP
所有规则验证无误后,将代码中的R=302改为R=301即可,301为永久重定向,可避免后续浏览器缓存旧规则影响使用。
内容的提问来源于stack exchange,提问作者Gavin Pedley
相关产品推荐
相关产品推荐

