Sto lavorando a un'applicazione Web Laravel 5.0 con pannello di amministrazione. Ho riscontrato un problema con Routes. Ho raggruppato percorsi di amministrazione come di seguito,Laravel 5 Route Group e Basic (/) GET Route all'interno del gruppo
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');
........
});
Le cose funzionano bene. Posso utilizzare seguente senza alcun problema,
http://domain.com/admin/dashboard
http://domain.com/admin/login
Ma voglio
http://domain.com/admin
per visualizzare la pagina di login o reindirizzare a
http://domain.com/admin/login
così ho cambiato il mio primo gruppo a seguire,
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]');
});
Ora Whe n accesso
http://domain.com/admin
Ottengo "Questa pagina web ha un ciclo di reindirizzamento" in chrome. È possibile nel gruppo Rotta? se non come si fa con .htaccess?
UPDATE
riportano di seguito le modalità di un middleware user.admin
handle
. Il che non fa altro che modificare il modello sottostante per l'autenticazione.
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
Questo è incredibile, lavora
http://domain.com/index.php/admin
non ho toccato predefinita .htaccess
fornito da laravel 5.0, che è in basso,
<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>
I seguenti avere quasi 60-70 percorsi, a e tutti funzionano senza lo standard index.php
nello scenario di cui sopra ho bisogno di index.php
.
Si prega di inviare il middleware – Szenis
@ Szenis- Grazie. Ho aggiornato la mia risposta. –
Puoi provare a dichiarare l'ultimo itinerario '/'? Mi chiedo in quale ordine i percorsi valutati. – Grasshopper