Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
нагородил вот таких вот костылей, чтобы сабдомены работали
основной смысл с том, чтобы страница города была на сабдомене в виде
mosva.aviaproject.new, kazan.aviaproject.new, а все остальные страницы сайта была на основном домене aviaproject.new
и вот такими костылями решил сделать, так как по другому не получалось
$flug = str_replace('.aviaproject.new', '', $_SERVER['SERVER_NAME']);
If ($flug !== 'aviaproject.new')
{
$city = DB::table('cities')->where('slug', $flug)->first();
$fors = $city;
$domzen = $city->slug . '.aviaproject.new';
if ($city->slug == $flug)
{
Route::group(array('domain' => $domzen), function()
{
Route::get('/', function(){
$flug = str_replace('.aviaproject.new', '', $_SERVER['SERVER_NAME']);
$city = DB::table('cities')->where('slug', $flug) -> first();
return View::make('city.single', compact('city'));
});
});
} else
{
Route::get('/', 'HomeController@showWelcome');
Route::get('info', 'HomeController@showInfo');
Route::get('city', 'CityController@show');
Route::get('airlines', 'AirlinesController@index');
Route::get('airline/{slug}', 'AirlinesController@show');
}
} else
{
Route::get('/', 'HomeController@showWelcome');
Route::get('info', 'HomeController@showInfo');
Route::get('city', 'CityController@show');
Route::get('airlines', 'AirlinesController@index');
Route::get('airline/{slug}', 'AirlinesController@show');
}
Уверен, что можно это сделать более правильно и компакно, так как это реальные костыли))
спасибо заранее
понимаю, что задача достаточно сложная)
заранее спасибо
http://laravel.com/docs/4.2/routing#sub-domain-routing
Route::group(array('domain' => '{account}.myapp.com'), function()
{
Route::get('user/{id}', function($account, $id)
{
//
});
});
Route::group(array('domain' => '{city}.yourdomain com'), function()
{
Route::get('/', function($city)
{
echo 'Главная города ' . $city . ' на домене третьего уровня';
});
Route::get('/news', function($city)
{
echo 'Новости города ' . $city . ' на домене третьего уровня';
});
});
Route::get('/', function()
{
echo 'Главная на основном домене';
});
Route::get('/news', function()
{
echo 'Новости на основном домене';
});
спасибо, но при загрузке страницы
4to-ugodno.yourdomain com
мне отдается контект
Route::get('/', function()
{
echo 'Главная на основном домене';
});
а должна отдаваться ошибка 404 или редиректить на yourdomain com
так как поле {city} не соответствует полю {slug} в базе
а должна отдаваться ошибка 404 или редиректить на yourdomain com
Само по себе ничего не делается.
$city = City::where('name', '=', $city)->first();
if(!$city)
{
return Response::make('Not Found', 404);
}
Страницы 1