【发布时间】:2017-01-19 19:42:28
【问题描述】:
我正在尝试在本地实现另一个开发人员创建的 Yii 项目,我正在 Mac 上运行 Xampp 5.6.28。
目前该项目正在为后端和前端 url 提供服务,但 api 路由抛出 404 Not Found 错误。
Apache conf 是:
<Directory "/Applications/XAMPP/xamppfiles/htdocs">
# use mod_rewrite for pretty URL support
RewriteEngine on
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php
# XAMPP
Options Indexes FollowSymLinks ExecCGI Includes
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
#AllowOverride None
# since XAMPP 1.4:
AllowOverride All
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
应用遵循“Yii 2 Advanced Project Template”结构,api在: app/api/ 和应该响应的控制器位于:app/api/modules/v1/controllers/AppController.php
有一个 api/config/main.php 有这个:
<?php
$params = array_merge(
require(__DIR__ . '/../../common/config/params.php'),
require(__DIR__ . '/../../common/config/params-local.php'),
require(__DIR__ . '/params.php'),
require(__DIR__ . '/params-local.php')
);
return [
'id' => 'app-api',
'basePath' => dirname(__DIR__),
'controllerNamespace' => 'api\controllers',
'defaultRoute'=>'default',
'bootstrap' => ['log'],
'modules' => [
'v1' => [
'class' => 'api\modules\v1\Module',
],
],
'components' => [
'user' => [
'identityClass' => 'common\models\User',
'enableAutoLogin' => false,
],
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
'request' => [
'enableCsrfValidation'=>false,
'parsers' => [
'application/json' => 'yii\web\JsonParser',
]
],
'errorHandler' => [
'errorAction' => 'default/error',
],
'urlManager'=>[
'enablePrettyUrl'=>true,
'showScriptName'=>false,
],
],
'params' => $params,
];
还有一个 common/config/main.php :
<?php
return [
'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
'name' => 'FULOOP',
'components' => [
'cache' => [
'class' => 'yii\caching\FileCache',
],
'authManager' => [
'class' => 'yii\rbac\DbManager',
],
'formatter' => [
'class' => 'yii\i18n\Formatter',
'dateFormat' => 'php:m/d/Y',
'datetimeFormat' => 'php:m/d/Y H:i:s',
'timeFormat' => 'php:H:i:s',
],
'frontendUrlManager'=>[
'class' => 'yii\web\urlManager',
'enablePrettyUrl'=>true,
'showScriptName'=>false,
'baseUrl'=>'/fuloop/frontend/web',
],
],
];
我不熟悉 Yii 框架,所以我不确定我应该在哪里寻找它, 提前感谢您的帮助。
【问题讨论】: