Перенаправить все субдомены на www при настройке переменной окружения

У меня есть домен (example.com), указывающий на веб-сервер apache2.

корневая папка www выглядит так:

www/
  site/
  app/
  test/

Конфигурация apache должна:

  • отправьте все запросы на http://www.example.com/ в папку "site".
  • отправьте все остальные запросы поддоменов в папку "app", указав имя поддоменов в качестве переменной среды.

Я уверен, что настройки DNS верны, все URL-адреса разрешаются для моего веб-сервера.

Вот что я получил в своей конфигурации apache:

<VirtualHost *:80>
    <Directory />
            Options Indexes FollowSymLinks Includes
            AllowOverride All
            Order deny,allow
            Allow from all
            Require all granted
    </Directory>
    ServerName www.example.be
    ServerAlias www.example.be
    DocumentRoot /var/www/site
    ErrorLog ${APACHE_LOG_DIR}/site/error.log
    CustomLog ${APACHE_LOG_DIR}/site/access.log combined
</VirtualHost>

<VirtualHost *:80>
    <Directory />
            Options Indexes FollowSymLinks Includes
            AllowOverride All
            Order deny,allow
            Allow from all
            Require all granted
    </Directory>
    ServerName example.be
    ServerAlias *.example.be
    VirtualDocumentRoot /var/www/app/production/source
    SetEnv VAR_NAME %1
    ErrorLog ${APACHE_LOG_DIR}/site/error.log
    CustomLog ${APACHE_LOG_DIR}/site/access.log combined
</VirtualHost>

Первый VirtualHost, www переписать в папку сайта, работает в порядке.

Второй корректно переписывает, но я не могу поместить поддомен в переменную окружения.

Может ли кто-нибудь помочь мне с этим последним шагом? Я не совсем эксперт по Apache...

Thanx!

1 ответ

Вы говорите, что браузер не может разрешить URL-адрес, например http://test.example.com/. Так является ли test.example.com зарегистрированным именем хоста в DNS? Если нет, то ваш RewriteRule никогда не получит шанс выстрелить, потому что клиент не сможет его найти.

Если вы не уверены, зарегистрирован ли test.example.com в DNS, попробуйте использовать любой инструмент поиска в Интернете или выполните команду из командной строки. host test.example.com (Linux) или nslookup test.example.com (Windows).

Другие вопросы по тегам