[英]Setting up Wildcard subdomain (with reverse proxy) on apache 2.2.3
我要實現的目標如下:我希望將許多子域(例如abc.domain.com)重定向到網址(例如www.domain.com/something?subdomain=abc)
由於我要重定向到完全限定的域,因此需要使用反向代理來避免在瀏覽器中更改URL。 (使用[P]標志並打開mod_proxy模塊和其他一些模塊)
*.domain.com. 14400 A 111.111.11.1
<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://時
<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的方式,
謝謝,
我也有同樣的問題。 我解決的唯一方法是將需要安全連接的不同域放在不同的偵聽端口上,因為我受到IP地址的限制。
據我了解,問題在於在https協議中,主機中未包含請求。 因此,當請求到達服務器時,apache只會在IP和連接被接收到的端口上使用第一個匹配項,因為它不知道從其請求的域。
唯一的解決方法是為每個域使用不同的IP,或使用不同的端口。
不幸的是,您不希望將https與通配符域設置一起使用,我不認為有任何方法可以使它正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.