У нас есть сайт, на который я позвоню example.com. Большую часть времени вы видите http://www.example.com, и иногда мы перенаправляем вас на https://www.example.com.Проблема с перенаправлением * .example.com & example.com на www.example.com для HTTPS
Мы хотим перенаправить всех, кто будет http://example.com или http: //*.example.com, до http://www.example.com, и то же самое для https. (В основном, чтобы избежать предупреждения, которое вы получите, если вы перейдете на https://example.com вместо https://www.example.com)
Наш файл-vhost находится в конце сообщения. Он прекрасно работает кроме для одного странного поведения:
- http://example.com -> успешно перенаправляет к http://www.example.com
- http://www.example.com -> успешно не перенаправляет
- http://foo.example.com -> успешно перенаправляет http://www.example.com
- https://example.com -> успешно перенаправляется на https://www.example.com
- https://www.example.com -> successfu LLY не направляет
- https://foo.example.com ->ОШИБКИ - перенаправляет http://www.example.com
Это последний результат я не могу понять. Я пробовал много пробных и ошибочных решений от Google & Stack Overflow, но ничего не изменило его. Даже если мы поменяем порядок конфигураций (так, чтобы 443 был до 80), он по-прежнему перенаправляет https://foo.example.com на http://www.example.com
Мы используем Apache/2.2.12 на Ubuntu.
Вот конфигурационный файл:
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com *.example.com
ServerSignature On
DocumentRoot /var/www/example.com/public
RailsEnv 'production'
PassengerHighPerformance on
<Directory /var/www/example.com/public>
AllowOverride all
Options -MultiViews
</Directory>
SSLEngine Off
CustomLog /var/log/apache2/example.log combined
ErrorLog /var/log/apache2/example-error.log
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^[^\./]+\.[^\./]+$
RewriteRule ^/(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
ServerAlias example.com *.acome.com
DocumentRoot /var/www/example.com/public
RailsEnv 'production'
PassengerHighPerformance on
<Directory /var/www/example.com/public>
AllowOverride all
Options -MultiViews
</Directory>
SSLCertificateFile /etc/ssl/certs/www.example.com.crt
SSLCertificateKeyFile /etc/ssl/private/example.com.private.key
SSLCACertificateFile /etc/ssl/certs/EV_intermediate.crt
SSLEngine On
CustomLog /var/log/apache2/ssl-example.log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
ErrorLog /var/log/apache2/ssl-example-error.log
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^[^\./]+\.[^\./]+$
RewriteRule ^/(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
</VirtualHost>
Вряд ли проблема: я не думаю, что acme.com является его именем ACTUAL. :) – EMP
Да, но это прекрасно иллюстрирует проблему с просьбой о помощи с использованием поддельных данных. ОП не показал нам * реальную * проблему. –