У меня есть сайт sub.example.com
Настройка в apache с virtualhosts на портах 80 и 443 (см. Нижеприведенные конфиги). На самом деле это только 2 виртуальных хоста на сервере.Поддомен перенаправляется в основной домен без виртуального хоста
However, when I navigate к sub.example.com
, browser является redirecting к example.com
, и even finds в correct root document и renders на page login из sub.example.come
, where it then gets an error ssl since I only have a certificate для sub.example.com
.
Первое, что я пробовал, это перенаправить example.com
назад на sub.example.com
. Сначала я попробовал с .htaccess с директивами Rewrite, и это, казалось, не имело никакого эффекта. Затем я попытался установить постоянную переадресацию в конфигурационном файле apache, но это привело к циклу перенаправления.
Как можно sub.example.com
перенаправить на example.com
, и далее, как можно было бы найти корень документа вообще?
В идеале example.com
не должен существовать вообще, но я буду удовлетворен этим, по крайней мере, перенаправлением example.com
на sub.example.com
.
Вот моя конфигурация apache. (Использование Ubuntu 12.04 и Apache 2.2)
ports.conf
NameVirtualHost xx.xx.xx.xx:80
NameVirtualHost xx.xx.xx.xx:443
Listen 80
<IfModule mod_ssl.c>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
VirtualHosts конфигурации
# redirect to https
<VirtualHost xx.xx.xx.xx:80>
ServerName sub.example.com
DocumentRoot /var/www/path/to/webroot
RedirectPermanent/https://sub.example.com
</VirtualHost>
# https
<VirtualHost xx.xx.xx.xx:443>
ServerName sub.example.com
DocumentRoot /var/www/path/to/webroot
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/path/to/webroot>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/sub.example.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/sub.example.com.key
SSLCertificateChainFile /etc/apache2/ssl/chain.crt
LogLevel notice
ErrorLog ${APACHE_LOG_DIR}/sub-example-error.log
CustomLog ${APACHE_LOG_DIR}/sub-example-access.log combined
</VirtualHost>