Я работаю над веб-приложением Laravel 5.0 с панелью администратора. Я столкнулся с проблемой с Маршрутами. Я группировал маршруты администратора, как показано ниже,
Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => ['user.admin']], function () {
Route::get('login', [
'as' => 'admin.login',
'uses' => '[email protected]'
]);
Route::get('logout', [
'as' => 'admin.login',
'uses' => '[email protected]'
]);
Route::post('login', '[email protected]');
});
Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => ['user.admin','auth', 'admin.acl']], function () {
Route::get('dashboard', [
'as' => 'admin.dashboard',
'uses' => '[email protected]',
'permission' => 'admin_dashboard'
]);
//Image Handler
Route::get('images/{size}/{name?}',[
'as' => 'admin.images',
'uses' => '[email protected]'
]);
Route::resource('user', 'UsersController');
........
});
Все работает нормально. Я могу использовать следующее без каких-либо проблем,
http://domain.com/admin/dashboard
http://domain.com/admin/login
Но я хочу
http://domain.com/admin
для отображения страницы входа или перенаправления на
http://domain.com/admin/login
поэтому я изменил свою первую группу на следующую,
Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => ['user.admin']], function () {
Route::get('/', [
'uses' => '[email protected]'
]);
Route::get('login', [
'as' => 'admin.login',
'uses' => '[email protected]'
]);
Route::get('logout', [
'as' => 'admin.login',
'uses' => '[email protected]'
]);
Route::post('login', '[email protected]');
});
Теперь, когда я получаю доступ к
http://domain.com/admin
Я получаю "Эта веб-страница имеет цикл переадресации" в хроме. Возможно ли это в группе маршрутов? если не так, как это сделать с .htaccess?
UPDATE
Ниже приведен метод handle
промежуточного программного обеспечения user.admin
. Что не делает ничего, кроме изменения базовой модели для аутентификации.
public function handle($request, Closure $next)
{
\Config::set('auth.table', 'admins');
\Config::set('auth.model', 'App\DB\Admin\Admin');
\Config::set('session.cookie', 'admin_session');
\Config::set('session.path', '/admin/');
return $next($request);
}
UPDATE
Это потрясающе, после работ
http://domain.com/index.php/admin
Я не коснулся стандартного .htaccess
, предоставленного laravel 5.0, который ниже,
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
У меня есть почти 60-70 маршрутов, и все они работают без index.php
accept в приведенном выше сценарии мне нужно index.php
.