Перенаправить все субдомены на 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).