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

Apache .htaccess转Nginx .config及CodeIgniter站点访问异常排查

解决CodeIgniter在Nginx上的根目录访问问题 & .htaccess转Nginx配置

嘿,我正好处理过不少CodeIgniter迁移到Nginx的问题,这就帮你搞定访问路径的问题,顺便把原有.htaccess的规则转换成Nginx的配置!

第一步:先确认CodeIgniter的核心配置

先检查你的CodeIgniter配置文件,确保线上环境的设置正确:

  1. 修改application/config/config.php

    • 设置正确的base_url:
      $config['base_url'] = 'https://tushibe.com/';
      
    • 清空index_page(这是去掉URL里index.php的关键):
      $config['index_page'] = '';
      
  2. 修改application/config/routes.php
    把默认控制器设置为你的shopController,这样访问根目录时自动路由到它:

    $route['default_controller'] = 'shopController';
    

第二步:替换.htaccess的Nginx配置

Nginx不支持.htaccess,所以我们要把Apache的重写规则直接写到Nginx的server配置里。找到你的Nginx站点配置文件(通常在/etc/nginx/sites-available/或/etc/nginx/conf.d/目录下),修改成以下内容:

server {
    listen 80;
    server_name tushibe.com;
    # 替换成你线上项目的根目录(就是包含index.php的那个文件夹路径)
    root /var/www/html/ecommerce;
    index index.php index.html index.htm;

    # 静态资源直接返回,提升性能,减少PHP请求
    location ~* \.(css|js|png|jpg|jpeg|gif|ico|svg)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }

    # 核心重写规则,替代.htaccess的功能
    # 先尝试访问文件、目录,找不到就交给index.php处理
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # 处理PHP请求,确保交给PHP-FPM正确处理
    location ~ \.php$ {
        # 这里根据你的PHP版本和配置调整,比如php8.1-fpm.sock或者127.0.0.1:9000
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

第三步:验证配置并重启Nginx

  1. 先检查Nginx配置是否有语法错误:
    sudo nginx -t
    
  2. 如果提示test is successful,就重启Nginx生效:
    sudo systemctl restart nginx
    

额外注意事项

  • 确保你的Nginx根目录指向正确,必须是CodeIgniter项目的根目录(包含index.php的文件夹),而不是子目录。
  • PHP-FPM的路径要和你服务器上的实际配置一致,比如用TCP端口的话,改成fastcgi_pass 127.0.0.1:9000;。
  • 检查项目文件夹的权限,确保Nginx用户(通常是www-data)有读取权限:
    sudo chown -R www-data:www-data /var/www/html/ecommerce
    

这样配置完成后,你访问tushibe.com/就会自动路由到shopController,和本地环境的访问方式一致啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:21:28