我在Laravel 5上工作,我正在启动一个API,所以我只是创建了一个非常简单的路由和控制器,只是为了测试路由将被命中的位置。这是我在routes\api.php
中所拥有的
Route::group(array('prefix' => 'test', 'middleware' => ['guest']), function()
{
Route::get('/', 'Aiapi\BaseAIApiController@index');
});
和控制器:
class BaseAIApiController extends Controller
{
public function index()
{
return 'HI';
}
}
在我的Http\Kernel.php
中,这是在$routeMiddleware
变量:'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
中声明来宾中间件的方式,这是handle
方法的内容(我注释了if块,也发生了同样的事情):
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/home');
}
return $next($request);
}
当我执行php artisan route:list
时,我在那里看到了这条路径,我也执行了php artisan route:clear
,但当我点击/api/test/
时,我被重定向到网站的主页。下面是public
文件夹中.htaccess
的内容:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteRule thumb/([[:alnum:]]+)\/(.*) thumbnail/?src=$2¶ms=$1 [QSA,L,NC]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
我尝试使用301 redirect
删除行块,但它做了同样的事情。我到底做错了什么?我一直在StackOverflow上尝试类似问题的答案,到目前为止还没有一个对我有效。
谢谢你的帮助
发布于 2019-10-19 05:21:28
我找到问题了。我描述路由的方式和我的控制器应该可以完美地工作。我发现,在我正在开发的这个应用程序中,有一个语言提供程序,它基本上强制所有路由都以en
、fr
或admin
开头。
这就是我遇到问题的原因
https://stackoverflow.com/questions/58437259
复制相似问题