2017-01-26 4 views
0

Ich bin ein Silex-Neuling und ich möchte die '/' URL auf die Standardsprache wie '/ de' umleiten. Ich mache das:Silex 2.0 Redirection

$app->match('/', function(Application $app){ 

    return $app->redirect('/Silex/www/'.$app['locale_fallbacks'][0]); 
}); 

Bin ich gezwungen, die absolute URL von der Wurzel des Servers zu setzen? Ich möchte nur $app->redirect('$app['locale_fallbacks'][0]); setzen. Und ist es der richtige Weg, die Standardsprache zu bekommen?

Vielen Dank

Antwort

1

Sie müssen nicht geben dort den Host. Wie in Ihrer match() werden Sie eine relative URL übergeben. Es wäre jedoch wahrscheinlich besser, keinen neuen Roundtrip zum Browser zu machen und die Anfrage intern weiterzuleiten oder sie sogar über .htaccess neu zu schreiben.

use Symfony\Component\HttpFoundation\Request; 
use Symfony\Component\HttpKernel\HttpKernelInterface; 

$app->match('/', function() use ($app) { 
    $subRequest = Request::create('/' . $app['locale_fallbacks'][0], 'GET'); 
    return $app->handle($subRequest, HttpKernelInterface::SUB_REQUEST); 
}); 
+0

Erwähnenswert, dass das Verzeichnis/Silex/www/in URL mit einem Neuschreiben (Apache/nginx) weggelassen werden sollte – mTorres