Eu tenho uma configuração bastante complicada. Pelo menos para mim, desde que eu sou novo no apache, mod_rewrite e todas essas coisas.
O que eu quero é isso:
Então, eu escrevi um código que funciona principalmente, exceto pelo www.foo.bar.com. Agora estou trabalhando em um novo.
O problema é que não sei em que ordem as coisas funcionariam corretamente. Devo colocar se livrar do primeiro www? Ou devo configurar o proxy no topo?
Aqui está o meu novo arquivo até agora.
Espero que alguém possa ajudar a limpar as coisas.
# welcome page
<VirtualHost *:80>
ServerName bar.com
DocumentRoot /var/www/bar
</VirtualHost>
# ssl and proxy for subdomains
<VirtualHost *:443>
ServerName foo.bar.com
ServerAlias *.bar.com
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ProxyRequests Off
ProxyPass / http://bar.com:8089/
ProxyPassReverse / http://bar.com:8089/
ProxyVia On
</VirtualHost>
<VirtualHost *:80 *:443>
ServerName bar.com
ServerAlias *.bar.com
# remove www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301]
# redirect https://bar.com -> http://bar.com
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^bar.com$ [NC]
RewriteRule ^ http://bar.com%{REQUEST_URI} [L,R=301]
# redirect http -> https
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301]
ErrorLog /var/log/foo/foo-error.log
CustomLog /var/log/foo/foo-access.log combined
LogLevel warn
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
################
# restrictions #
################
<Location /web/database>
Order deny,allow
Deny from all
Allow from 1.2.3.4
</Location>