У меня проблемы с mod_rewrite. Итак, я реализую его через .htaccess, и я могу заставить его работать на моем основном vhost, domain.com - все, что я хочу, это переписать, http://domain.comчтобы заставить его https://domain.com, что он делает хорошо. Я хочу иметь vhosts на основе имен для одного IP со следующими перенаправлениями:

http://domain.com --> https://domain.com
http://staging.domain.com --> https://staging.domain.com
http://test.domain.com --> https://test.domain.com
http://beta.domain.com --> https://beta.domain.com

domain.comперенаправляет на https://domain.com, но не staging.domain.com, хотя я могу получить доступ https://staging.domain.com. .Htaccess одинаков для обоих, только с другим доменным именем. Похоже, что он вообще не выполняет перезапись для staging.domain.com, я тестировал это, пытаясь перезаписать его на www.google.com.

У меня есть DNS-запись с подстановочными знаками, * .domain.com, которая указывает на IP-адрес домена.

Можно ли каким-то образом настроить виртуальные хосты, чтобы разрешить это?

Я продолжаю читать в документации Apache, что он не поддерживает несколько виртуальных хостов на основе имен SSL. Но я могу получить доступ к обоим, https://domain.comи все в https://staging.domain.comпорядке.

Есть предположения? Спасибо всем за помощь в этом.

answer

У вас есть директива NameVirtualHost? И вы используете их в своей конфигурации vhost?

Кроме того, взгляните на это: http://wiki.apache.org/httpd/NameBasedSSLVHosts

Если оба домена SSL работают на одном IP-адресе, будет использоваться только одно шифрование (сертификат), и «клиенты будут получать предупреждения о несоответствии сертификатов и будут уязвимы для атак типа« злоумышленник в середине »».

RewriteEngine можно включить как глобально, так и для каждого виртуального хоста. Даже если он включен глобально, параметры по умолчанию не переносятся в vhosts. Вероятно, вам просто нужно снова включить его в текущем vhost. RewriteEngine on(и, возможно RewriteOptions inherit, в зависимости от вашей конфигурации) в каждом виртуальном хосте.