CodeIgniter中实现HTTP自动重定向至HTTPS的.htaccess配置修改
CodeIgniter 实现 HTTP 自动重定向到 HTTPS
直接在你的现有.htaccess代码里,在RewriteEngine on之后添加HTTP转HTTPS的重定向规则即可——注意重定向规则要放在路由规则前面,避免先路由再重定向的冗余请求。
修改后的完整代码如下:
Options +FollowSymLinks Options -Indexes DirectoryIndex index.php RewriteEngine on # 添加HTTP转HTTPS的重定向规则 RewriteCond %{HTTPS} !=on RewriteCond %{HTTP:X-Forwarded-Proto} !=https RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # 原有CodeIgniter路由规则 RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]
规则说明
RewriteCond %{HTTPS} !=on:检查当前请求是否为非HTTPS协议RewriteCond %{HTTP:X-Forwarded-Proto} !=https:兼容反向代理/CDN场景(比如服务器在Nginx或Cloudflare后面时,Apache直接拿到的是HTTP请求,需要通过这个头判断原始请求协议)RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]:发起301永久重定向到对应HTTPS地址,[L]表示停止执行后续规则
注意事项
如果你的服务器没有使用反向代理或CDN,可以去掉第二条RewriteCond %{HTTP:X-Forwarded-Proto} !=https,避免不必要的判断。
内容的提问来源于stack exchange,提问作者Saurabh Singhal
相关产品推荐
相关产品推荐

