Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 14.08.2017 13:56:01

Мультидомены на ларавеле

У меня тут проблема с поддоменами
Смотри если я в /etc/hosts/ указываю 127.0.0.1  magelan.loc     sun.magelan.loc
я попадаю на свой индекс это отлично так и надоно если я указываю
127.0.0.1 magelan.loc      *.magelan.loc

такого сайта не видит апач
Можешь помочь?

Не в сети

#2 14.08.2017 14:58:31

Re: Мультидомены на ларавеле

/etc/hosts не поддерживает wildcard
настраивай локально зону днс

Не в сети

#3 14.08.2017 18:14:48

Re: Мультидомены на ларавеле

Я реализовал поддомены так:
/etc/hosts
127.0.0.1    site.dev
127.0.0.1    *.site.dev

/etc/apache2/sites-available/site.dev.conf
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName site.dev
    ServerAlias *.site.dev
    DocumentRoot /var/www/site/public
    <Directory "/var/www/site/public">`
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

/var/www/site/public/.htaccess
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

Т.о. при заходе на поддомен subdomain.site.dev можно выхватить
$server = explode('.', $request->server('HTTP_HOST'));
if(count($server) > 2){
// юзер зашел на поддомен
$subdomain =  $server[0];
}

Как-то так....

Не в сети

#4 14.08.2017 18:37:31

Re: Мультидомены на ларавеле

Я сделал Через ДНС только вот вопрос по Ларавелю есть
Я допустим хочу зайти на сайт imedia.domen.loc/
Вот этот роут почему то не срабатывает
Route::domain('{account}.domen.loc')->group(function () {

    Route::get('/', function ($account) {
        dd($account);
    });
});

А если вот так
Route::domain('{account}.domen.loc')->group(function () {

    Route::get('/user', function ($account) {
        dd($account);
    });
});
То захожу но мне же корень тоже нужен как, туда попасть?

Изменено imediasun (14.08.2017 18:38:32)

Не в сети

#5 14.08.2017 20:00:07

Re: Мультидомены на ларавеле

Для примера, я пускаю юзеров только на те поддомены, которые соответствуют с уже имещимся аккаунтам…

PHP
Route::group(['domain' => '{account}.site.dev'], function () {
        
Route::get('/', function ($account) {
            
$server explode('.'Request::server('HTTP_HOST'));
            
$profile App\Profile::where('company_login''='$account)->first();

            if(
$profile == Null){
                return 
redirect('http://'.$server[1].'.'.$server[2]);
            }else{
                return 
view('welcome');
            }
        });
});

Изменено Dzhangar (14.08.2017 20:00:52)

Не в сети

Подвал раздела