У меня довольно сложная установка. По крайней мере, для меня, поскольку я новичок в apache, mod_rewrite и всем остальном.
Я хочу вот что:
Итак, я написал код, который в основном работает, за исключением www.foo.bar.com. Сейчас работаю над новым.
Дело в том, что я не знаю, в каком порядке все будет работать правильно. Должен ли я сначала избавиться от www? Или надо настроить прокси вверху?
Вот мой новый файл.
Надеюсь, кто-нибудь поможет мне навести порядок.
# 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>