【发布时间】:2010-11-14 07:26:22
【问题描述】:
我想要达到的目标如下: 我想让许多子域,例如 abc.domain.com 重定向到一个 url,例如 www.domain.com/something?subdomain=abc
由于我重定向到一个完全限定的域,我需要使用反向代理来避免浏览器中 URL 的更改。 (使用 [P] 标志并打开 mod_proxy 模块和其他一些模块)
这是我的 DNS 设置
*.domain.com. 14400 A 111.111.11.1
这是我的 apache 虚拟主机配置
<VirtualHost 111.111.11.1:80>
ServerName www.domain.com
ServerAlias *.lionite.com
DocumentRoot /var/www/html
ErrorLog /var/www/logs
UseCanonicalName off
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/images
RewriteCond %{HTTP_HOST} !^www\.domain\.com$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+)\.domain\.com(.*) http://www.domain.com/something?subdomain=$1 [P,L]
此设置运行良好(如果您认为当然可以改进,请告诉我)。
我的主要问题是当我尝试设置 https://
这是我的 apache 虚拟主机配置
<VirtualHost 111.111.11.1:443>
ServerName www.domain.com:443
ServerAlias *.domain.com
DocumentRoot /var/www/html
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/httpd/conf.d/cert/server.crt
SSLCertificateKeyFile /etc/httpd/conf.d/cert/server.key
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/images
RewriteCond %{HTTPS_HOST} !^www\.domain\.com$
RewriteRule ^(.+) %{HTTPS_HOST}$1 [C]
RewriteRule ^([^.]+)\.domain\.com(.*) https://www.domain.com/something?subdomain=$1 [P,L]
</VirtualHost>
每当我打电话给https://abc.domain.com - 我得到的响应是主页,但无论我在子域的末尾附加什么,我都会得到相同的响应。好像重写反应不好。
如果您能提供任何帮助,我们将不胜感激,或者如果您能分享您如何一起设置反向代理、重写、通配符子域和 SSL
谢谢,
【问题讨论】:
-
这个问题更适合 serverfault.com
-
我已经在 serverfault.com 上发布了这个问题,但没有收到任何答案,我决定也在这里发布。
标签: mod-rewrite ssl wildcard reverse-proxy apache