Rotear usando um prefixo ou um domínio
Estou trabalhando em uma plataforma que permite aos usuários executar seu próprio site em uma subpasta do domínio principal do site ou mapear um domínio personalizado para o site.
Ao usar um domínio personalizado, a estrutura de URL para cada rota é um pouco diferente, pois é prefixada com o nome de usuário, mas ao usar um domínio personalizado, esse prefixo não é usado.
Existe uma maneira inteligente de conseguir isso no meu Route :: group para lidar com os dois tipos de solicitação em uma rota e usar com êxito o roteamento reverso para produzir a URL apropriada com base nos parâmetros passados para ela.
Abaixo está um exemplo de como usar o prefixo
Route::group(array( 'prefix' => 'sites/{username}'), function() {
Route::get('/photos/{album_id}.html', array('uses' => 'Media\PhotosController@album_view', 'as' => 'photo_album'));
});
E aqui está um exemplo de uso de um domínio personalizado
Route::group(array('domain' => '{users_domain}'), function() {
Route::get('/photos/{album_id}.html', array('uses' => 'Media\PhotosController@album_view', 'as' => 'photo_album'));
});
Idealmente, gostaria de estar em uma posição em que pudesse usar
route('photo_album', ['username' => 'johnboy', 'album_id' => 123] )
e ser devolvido
http://www.mainwebsitedomain.com/sites/johnboy/photos/123.html
ou chame a mesma rota com parâmetros diferentes
route('photo_album', ['users_domain' => 'www.johnboy.com', 'album_id' => 123] )
e ser devolvido
http://www.johnboy.com/photos/123.html