我有一个相当复杂的设置。 至less对我来说,因为我是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>