Назад | Перейти на главную страницу

Настройка поддомена с подстановочными знаками (с обратным прокси) на apache 2.2.3

Я пытаюсь достичь следующего: я хочу иметь множество поддоменов, таких как abc.domain.com перенаправить на URL-адрес, например www.domain.com/something?subdomain=abc

Поскольку я перенаправляюсь на полностью определенный домен, мне нужно было использовать обратный прокси, чтобы избежать изменения URL-адреса в браузере. (использование флага [P] и включение модуля mod_proxy и некоторых других модулей)

Это моя настройка DNS

*.domain.com.   14400    A  111.111.11.1

Это моя конфигурация виртуального хоста для apache

<VirtualHost 111.111.11.1:80>
    ServerName www.domain.com
    ServerAlias *.lionite.com
    DocumentRoot /var/www/html
    ErrorLog /var/www/logs
    UseCanonicalName off

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/images
RewriteCond   %{HTTP_HOST}      !^www\.domain\.com$
RewriteRule   ^(.+)     %{HTTP_HOST}$1          [C]
RewriteRule   ^([^.]+)\.domain\.com(.*) http://www.domain.com/something?subdomain=$1 [P,L]

Эта настройка работает нормально (дайте мне знать, если вы, конечно, думаете, что можете ее улучшить).

Моя основная проблема - когда я пытаюсь настроить https: //

Это моя конфигурация виртуального хоста для apache

<VirtualHost 111.111.11.1:443>
ServerName www.domain.com:443
ServerAlias *.domain.com
DocumentRoot /var/www/html

SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/httpd/conf.d/cert/server.crt
SSLCertificateKeyFile /etc/httpd/conf.d/cert/server.key

<Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^/images
    RewriteCond   %{HTTPS_HOST}      !^www\.domain\.com$
    RewriteRule   ^(.+)     %{HTTPS_HOST}$1          [C]
    RewriteRule   ^([^.]+)\.domain\.com(.*) https://www.domain.com/something?subdomain=$1 [P,L]

</VirtualHost>

Всякий раз, когда я звоню https://abc.domain.com - ответ, который я получаю, является домашней страницей, но независимо от того, что я добавляю в конец поддомена, я получу тот же ответ. Это похоже на то, что перезапись не работает.

Любая помощь будет принята с благодарностью, или если вы могли бы поделиться, как вы настроили обратный прокси, перезапись, поддомен с подстановочными знаками и SSL все вместе

Спасибо,

Поскольку SSL является транспортным протоколом и обертывает http, у вас не может быть SSL vhosts. Это означает, что HTTP_HOST не имеет смысла ... попробуйте заменить HTTPS_HOST на SERVER_NAME