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

OpenLiteSpeed服务器上CodeIgniter应用.htaccess重定向问题求助

OpenLiteSpeed上CodeIgniter去除index.php的解决方案

1. 修正CodeIgniter核心配置

打开application/config/config.php文件,调整以下两项配置:

  • 将$config['index_page']设置为空字符串:
    $config['index_page'] = '';
    
  • 将$config['uri_protocol']设置为REQUEST_URI:
    $config['uri_protocol'] = 'REQUEST_URI';
    

2. 替换为适配OpenLiteSpeed的.htaccess

原配置存在重复规则和不兼容OpenLiteSpeed的写法,替换为以下内容:

<IfModule mod_rewrite.c>
    RewriteEngine On
    # OpenLiteSpeed必须明确设置RewriteBase,根目录部署设为/,子目录则对应调整(如/app/)
    RewriteBase /

    # 跳过真实存在的文件和目录
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # 排除静态资源、robots.txt等无需重写的路径
    RewriteCond %{REQUEST_URI} !^/(assets|robots\.txt|favicon\.ico)
    # 重写请求到index.php处理,QSA保留查询参数,L终止规则
    RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

    # 保留HTTP授权头,避免CodeIgniter无法获取
    RewriteCond %{HTTP:Authorization} .+
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%0]

    # 301重定向favicon到正确路径
    Redirect 301 /favicon.ico /assets/images/favicon.ico

    # 禁止直接访问.env配置文件
    <Files .env>
        Order Allow,Deny
        Deny from all
    </Files>
</IfModule>

3. 检查OpenLiteSpeed服务器设置

  • 进入OpenLiteSpeed控制台,找到对应虚拟主机,在Rewrite选项卡中:
    • 确保Enable Rewrite设为Yes
    • 确保Auto Load From .htaccess设为Yes
  • 确认虚拟主机的Document Root指向CodeIgniter的根目录(即包含index.php的文件夹)
  • 重启OpenLiteSpeed服务,使配置生效:
    systemctl restart lsws
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 04:22:43