CodeIgniter 4.6.0仅加载默认页面及PHP代码显示问题求助
问题解决方案
Spark Serve 模式下路由404修复
- 开启自动路由或手动添加路由:
CI4默认关闭自动路由,若想直接通过控制器名/方法名访问,打开app/Config/Routes.php,设置$routes->setAutoRoute(true);;若需自定义路由,添加对应规则,例如:$routes->get('/home', 'Home::index'); $routes->get('/home2', 'Home::index'); // 需确保Home控制器存在index方法 - 恢复默认
uriProtocol:
打开app/Config/App.php,将$uriProtocol改回默认值:public $uriProtocol = 'REQUEST_URI'; - 验证控制器合法性:
确保app/Controllers/Home.php的类名与文件名一致(均为Home),且继承BaseController、包含index方法:namespace App\Controllers; class Home extends BaseController { public function index() { return view('welcome_message'); } }
Apache 部署问题修复(含PHP明文显示解决)
- 配置Apache解析PHP:
编辑httpd.conf,添加/确认以下配置(路径替换为你的PHP安装目录):# 加载PHP模块 LoadModule php8_module "C:/php/php8apache2_4.dll" # 设置PHP文件处理规则 AddHandler application/x-httpd-php .php # 设置默认索引页 DirectoryIndex index.php index.html - 启用URL重写模块:
在httpd.conf中确保开启mod_rewrite:LoadModule rewrite_module modules/mod_rewrite.so - 配置项目根目录与权限:
将Apache根目录指向项目的public文件夹,并设置AllowOverride All:DocumentRoot "C:/your-project-path/public" <Directory "C:/your-project-path/public"> AllowOverride All Require all granted </Directory> - 验证
.htaccess文件:
确保项目public目录下存在.htaccess文件,内容为CI4默认规则:<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule>
内容的提问来源于stack exchange,提问作者Marv Ferrer
相关产品推荐
相关产品推荐

