我使用host/site/index能访问到 actionIndex()控制器! 但控制器名称有多段后,使用host/site/get-api-data 访问actionGetApiData()却直接导向到host/site/error去了!
.htaccess 配置如下
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^(index\.php|images|css|js|scripts|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
本文由 goodman 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。 本文由 goodman 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。
在本地能行,放到服务器就不行了:
➜ advanced git:(master) curl api.geolbs.com/site/get-api-data
string(14) ""get_api_data""
"get_api_data"% ➜ advanced git:(master) curl apilbs.kanjiebao.com/site/get-api-data
string(230) "{"enableCsrfValidation":false,"csrfParam":"_csrf","csrfCookie":{"httpOnly":true},"enableCsrfCookie":true,"enableCookieValidation":false,"cookieValidationKey":"oMSrL22MTtK51NEMFByqQczYcPgY9_Bw","methodParam":"_method","parsers":[]}"
{"enableCsrfValidation":false,"csrfParam":"_csrf","csrfCookie":{"httpOnly":true},"enableCsrfCookie":true,"enableCookieValidation":false,"cookieValidationKey":"oMSrL22MTtK51NEMFByqQczYcPgY9_Bw","methodParam":"_method","parsers":[]}% ➜ advanced git:(master)
这是这个控制器的代码!
<?php
namespace api\controllers;
use Yii;
use api\controllers\BaseController;
class SiteController extends BaseController
{
public function actionIndex()
{
return json_encode ( [
"code" => 0,
"msg" => "success!",
"data" => ""
] );
}
public function actionError()
{
return json_encode ( Yii::$app->request );
}
public function actionGetApiData()
{
return json_encode ( 'get_api_data' );
}
}