У меня есть домен как example.dev, и я хочу перенаправить его на www.example.dev в laravel 5. В локальной среде я установил виртуальный хост как example.dev, а также установил его как файл www.example.dev.
Мой файл.htaccess на laravel 5 выглядит так.
<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>
RewriteBase "/"
и мой файл маршрутов в laravel выглядит так.
Route::group(array('domain' => 'example.dev'), function()
{
Route::get('/', function() {
return "I'm root!";
});
});
Route::group(array('domain' => '{sub}.example.dev'), function()
{
Route::get('/', function($sub) {
return "I'm ".$sub." subdomain";
});
});
теперь, если я нахожусь на example.dev, я получаю вывод как
Я корень
и если я нахожусь в something.example.dev, я получаю
Я что-то субдомен
и если я нахожусь на www.example.dev, я получаю это...
Я - субдомен www
что я могу думать о том, чтобы определить другую пользовательскую группу домена с www, но это не так хорошо, я верю или не пользуюсь хорошей практикой. Я попытался с некоторыми изменениями в моем.htaccess файле, как следует после RewriteEngine On
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
и теперь, если я нахожу example.dev, он перенаправляется на www.example.dev, но все же выход
Я - субдомен www
то я меняю мою первую группу маршрутизации с example.dev на www.example.dev, и она сработала! но мне просто нужно знать, правильно ли это сделать или нет? или использование групп для нескольких поддоменов является единственным способом? и знаете ли вы какой-либо простой и лучший способ проверить субдомены из базы данных через контроллер, поэтому я проверю его, что субдомен существует, а затем служит с ним, иначе в противном случае не будет найдена ошибка. я знаю, где-то это можно сделать с фильтром и использовать до этого, но точно не знаю!
помощь будет действительно оценена. благодаря :)
Route::group(array('domain' => '{sub}.example.dev'), function($sub)
{
if($sub == 'www' || $sub == ''){
Route::get('/',function(){
return "I'm root!";
});
}
else{
Route::get('/', function($sub) {
return "I'm ".$sub." subdomain";
});
}
});
$sub
качестве аргумента в функцию группы маршрутов, чтобы она работала в операторе if. я пробовал с этим кодом, но все еще вывод для www.example.dev я поддомен www
if($sub == "www")
в закрытии группы маршрутов?