You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

本地环境下CodeIgniter应用无法运行,.htaccess配置求助

解决本地XAMPP下CodeIgniter应用无法运行的问题

我来帮你排查这个问题,看你的配置细节,核心问题出在.htaccess的位置和规则设置上,再配合几个关键的环境确认,就能搞定了:

首先先理清楚你的环境现状:

  • 应用实际入口目录:C:/xampp/htdocs/dev.application.pl/public_html/
  • CodeIgniter的base_url配置:$config['base_url'] = 'http://localhost/dev.application.pl/';
  • 当前.htaccess放在dev.application.pl目录下,规则未生效

下面是具体的修复步骤:

1. 先确认Apache的mod_rewrite模块已开启

这是URL重写能生效的基础:

  • 打开XAMPP控制面板,点击Apache的「Config」按钮,选择httpd.conf文件
  • 找到一行代码:#LoadModule rewrite_module modules/mod_rewrite.so,把前面的#去掉(取消注释)
  • 保存文件后,重启Apache服务

2. 调整.htaccess的位置和规则内容

你的public_html才是CodeIgniter的实际应用根目录,所以**.htaccess必须放到public_html目录下**,而不是上级的dev.application.pl目录。

.htaccess替换成下面的规则:

RewriteEngine On
# 这里的RewriteBase要匹配你的base_url路径,也就是/dev.application.pl/
RewriteBase /dev.application.pl/

# 排除实际存在的文件和目录,避免静态资源被重写
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 把请求路径转发给index.php,兼容Apache不同配置写法
RewriteRule ^(.*)$ index.php?/$1 [L]

为什么要这么改?

  • 原来的RewriteBase /public_html是错误的,因为你的base_url指向的是/dev.application.pl/,Apache需要从这个路径开始识别重写规则
  • .htaccess放到public_html下,才能正确拦截该目录下的所有请求
  • 最后一行的index.php?/$1是兼容写法,能避免部分Apache配置下出现的404问题

3. 调整CodeIgniter的config.php配置

打开public_html/application/config/config.php,确保这一行设置为空:

$config['index_page'] = '';

这样CodeIgniter就不会在URL里强制加上index.php,配合.htaccess实现干净的URL访问。

4. 验证配置

重启Apache后,访问http://localhost/dev.application.pl/,如果正常加载首页,再试试访问一个具体的控制器(比如http://localhost/dev.application.pl/welcome),确认路由能正常跳转。


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

火山引擎 最新活动