Как сделать поддомены в Yii2+Apache?

Для создания поддоменов в Yii2 с использованием сервера Apache, вам потребуется выполнить несколько шагов:

Шаг 1: Настройка сервера Apache
Первым шагом является настройка сервера Apache для обработки поддоменов. Вам потребуется отредактировать файл конфигурации httpd.conf (в дистрибутиве Apache) или файл конфигурации сайта (в Ubuntu это файл /etc/apache2/sites-enabled/000-default.conf).

Добавьте следующий блок кода в файл конфигурации:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ServerName yourdomain.com
    ServerAlias *.yourdomain.com

    <Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

В этом блоке кода мы указываем, что сервер Apache должен обрабатывать все запросы, идущие на поддомены вашего основного домена (ServerAlias *.yourdomain.com). Замените "yourdomain.com" на свой домен.

Шаг 2: Создание поддомена в Yii2
Далее, вам нужно создать новый виртуальный хост в вашем проекте Yii2 для каждого поддомена.

1. Создайте новую папку в корне вашего проекта Yii2 для каждого поддомена. Например, для поддомена blog.yourdomain.com, создайте папку "blog" в корне проекта.

2. Затем создайте файл .htaccess в каждой папке поддомена со следующим содержимым:

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

Этот файл .htaccess позволит основному файлу index.php обрабатывать запросы на поддомен.

3. И, наконец, добавьте новый виртуальный хост в ваш файл конфигурации URLManager в файле config/web.php вашего проекта Yii2. Пример:

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        'http://blog.yourdomain.com' => 'blog/default/index',
        // добавьте другие правила для ваших поддоменов
    ],
],

В данном примере, мы настраиваем Yii2 таким образом, чтобы он обрабатывал запросы на поддомен "blog.yourdomain.com" и перенаправлял их на контроллер "blog/default/index". Вы можете добавить другие правила для своих поддоменов в этом же формате.

После завершения этих шагов вам должно удастся создать и обрабатывать поддомены в вашем проекте Yii2 с использованием сервера Apache.