У меня проблемы с mod_rewrite. Итак, я реализую его через .htaccess, и я могу заставить его работать на моем основном vhost, domain.com - все, что я хочу, это переписать http://domain.com
заставить его https://domain.com
, что у него хорошо получается. Я хочу иметь виртуальные хосты на основе имен для одного 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
просто хорошо.
Есть предположения? Спасибо всем за вашу помощь.
RewriteEngine можно включить как глобально, так и для каждого виртуального хоста. Даже если он включен глобально, параметры по умолчанию не переносятся в vhosts. Вероятно, вам просто нужно снова включить его в текущем vhost. RewriteEngine on
(и, возможно, RewriteOptions inherit
, в зависимости от вашей конфигурации) в каждом виртуальном хосте.
У вас есть директива NameVirtualHost? И вы используете их в своей конфигурации vhost?
Кроме того, взгляните на это: http://wiki.apache.org/httpd/NameBasedSSLVHosts
Если оба домена SSL работают на одном IP-адресе, будет использоваться только одно шифрование (сертификат), и «клиенты будут получать предупреждения о несоответствии сертификатов и будут уязвимы для атак типа« злоумышленник в середине »».