Как реализовать поддомены на laravel?

Здравствуйте! Мучает вопрос реализации доменов на laravel. Стоит цель сделать для каждого пользователя отдельную страницу по адресу типа: alex.site.ru.

В роуте сделал запись типа:

Route::group(array('domain' => '{subdomain}.lar.ru'), function()
{
    Route::get('/', 'DomainController@index');

	Route::get('/news', 'DomainController@news');
});


Сайт разрабатывается локально на xampp. В конфиге апача дописал вот такие строчки для работы поддоменов из подкаталогов:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName lar.ru
    ServerAlias *.lar.ru

    VirtualDocumentRoot C:\xampp\htdocs\lar.ru\subdomains\%1

    <Directory />
        Options FollowSymLinks
        AllowOverride all
        Require all denied
    </Directory>
    <Directory C:\xampp\htdocs\lar.ru\subdomains\*>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        DirectoryIndex index.php
        Require all granted
    </Directory>
</VirtualHost>


Данный вариант работает, но не так как мне нужно. Необходимо что бы поддомены использовали лару из главного каталога lar.ru, а не так, что в каждой папке поддомена отдельная лара. В папках поддоменов планируется хранить различные файлы пользователей.
  • Вопрос задан
  • 3951 просмотр
Пригласить эксперта
Ответы на вопрос 3
thestump
@thestump
программист PHP
Что если сделать такую структуру папок:
/laravel
/helpers
/domain
-----/www
-----/subdomain1
-----/subdomain2
-----/subdomain3
Все что в папках www и subdomain обращаются за файлами в папки laravel и helpers которые в единственном экземпляре.
А делим все апачем где в VirtualHost параметр DocumentRoot определяем для каждого домена и субдомена соответственно:
/var/www/laravel_project/domian/www
/var/www/laravel_project/domian/subdomain1
/var/www/laravel_project/domian/subdomain2
/var/www/laravel_project/domian/subdomain3
Ответ написан
thewind
@thewind
php программист, front / backend developer
А в конфигах апача не надо указать DocumentRoot и может все получится?
Ответ написан
@Nodlik
Попробуйте mod_rewrite. То есть запрос userName.site.ru отправлять в site.ru/users/userName, а этот роут уже обрабатывать фреймворком.

Как-то так.
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.site.ru
RewriteCond %{HTTP_HOST} ([^.]+)\.site.ru
RewriteRule ^(.*)$ /users/%1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы