我把我的php/Yii2项目(基于基本模板)部署到了一个共享主机空间。我想通过一个子域访问这个项目,因为主域上运行着一个wordpress。基本项目的常规控制器工作正常。问题是框架找不到模块中的任何控制器。模块itsef注册正确。
Web空间中的文件夹结构如下:
- /
- 万维网
- _wp(主域的目标文件夹)
- _项目
- web(子域的目标文件夹)
- 运行时间
- 视图
- ...
- 模组
- 测试模组
- Module.php
- 视图
- 模型
- 控制器
模块配置如下:
'modules' => [
'testmodule' => [
'class' => 'app\modules\testmodule\Module',
],
],
UrlManager的配置如下:
[
'showScriptName' => false,
'enablePrettyUrl' => true,
'enableStrictParsing' => false,
'rules' => array(
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
'<module:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>' => '<module>/<controller>/<action>',
'<module:\w+>/<controller:\w+>/<action:\w+>' => '<module>/<controller>/<action>'
),
];
_project\web
中的.htaccess
文件如下所示:
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php? [L]
在_project
文件夹中,我没有.htaccess
文件。
在我的本地机器上一切都运行良好。在我的网站空间上,项目本身的控制器运行良好。当我在一个模块中导航时,我会得到一个yii框架的404 Error
。我调试了项目,发现模块本身加载正确。问题是框架找不到Controller类,因为函数class_exists(controller)
返回false
。我不知道我能做些什么来解决这个问题。希望这里有人能帮助我,谢谢!
1条答案
按热度按时间6yt4nkrj1#
感谢Michal Hynčica的评论!我写了我的控制器小写和yii 2正在寻找他们与CamelCase.这在windows上工作.但在我的共享主机基于此不工作,因为大小写敏感!