You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用.htaccess将HTTP/HTTPS域名重定向到HTTPS://www(CodeIgniter3)

解决CodeIgniter 3中不带WWW的HTTP/HTTPS域名重定向问题

你的规则失效核心是条件组合逻辑错误,原规则里的[OR]会导致部分场景下重定向异常。下面是修正后的完整规则,能覆盖所有需要跳转的场景:

RewriteEngine On

# 统一重定向到https://www.mysite.co.bw/
RewriteCond %{HTTP_HOST} !^www\.mysite\.co\.bw$ [OR]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.mysite.co.bw/$1 [R=301,L,NE]

# CodeIgniter原生URL重写规则
RewriteCond $1 !^(index\.php|assets|images|js|css|uploads|favicon\.png)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

关键修正说明:

  • 调整条件逻辑:把原规则的^mysite\.co\.bw$改为!^www\.mysite\.co\.bw$,配合[OR]实现:只要域名不是带www的,或者HTTPS未开启,就触发重定向,覆盖http://mysite.co.bw/、https://mysite.co.bw/、http://www.mysite.co.bw/三种需要跳转的情况。
  • 添加NE标记:避免URL中的特殊字符被转义,保证参数传递准确。
  • 简化CI规则路径:将./index.php/$1改为index.php/$1,适配部分服务器的路径解析逻辑。

额外注意事项:

  • 确保CodeIgniter配置文件application/config/config.php中,$config['base_url']设为https://www.mysite.co.bw/,$config['index_page']留空。
  • 服务器需启用mod_rewrite模块,且.htaccess文件放在CI项目根目录(与index.php同级)。
  • 测试前清空浏览器缓存,301重定向会被浏览器缓存,之前的错误规则可能残留影响测试结果。

内容的提问来源于stack exchange,提问作者Yadhu Babu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 14:57:11