mod-rewrite – 在apache 2.2.3上设置通配符子域(带反向代理)

栏目: 后端 · 发布时间: 7年前

内容简介:我也有同样的问题.我解决它的唯一方法是在不同的侦听端口上放置需要安全连接的不同域,因为我受限于IP地址.根据我的理解,问题是在https协议中HOST不包含在请求中.因此,当请求到达服务器时,apache只使用接收连接的IP和端口上的第一个匹配,因为它不知道请求的域.解决此问题的唯一方法是为每个域或不同的端口使用不同的IP.

我想要实现的目标如下:

我希望有许多子域名,例如abc.domain.com重定向到网址,例如www.domain.com/something?subdomain=abc

由于我重定向到完全限定的域,我需要使用反向代理来避免在浏览器中更改URL. (使用[P] Flag并打开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一起

谢谢,

我也有同样的问题.我解决它的唯一方法是在不同的侦听端口上放置需要安全连接的不同域,因为我受限于IP地址.

根据我的理解,问题是在https协议中HOST不包含在请求中.因此,当请求到达服务器时,apache只使用接收连接的IP和端口上的第一个匹配,因为它不知道请求的域.

解决此问题的唯一方法是为每个域或不同的端口使用不同的IP.

不幸的是,你使用带有通配符域设置的https运气不好,我不相信无论如何都要让它工作.

翻译自:https://stackoverflow.com/questions/1187289/setting-up-wildcard-subdomain-with-reverse-proxy-on-apache-2-2-3


以上所述就是小编给大家介绍的《mod-rewrite – 在apache 2.2.3上设置通配符子域(带反向代理)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

人工智能

人工智能

(美)GeorgeF.Luger / 郭茂祖;刘扬;玄萍;王春宇 / 机械工业出版社 / 2010-1 / 79.00元

《人工智能复杂问题求解的结构和策略(原书第6版)》是一本经典的人工智能教材,全面阐述了人工智能的基础理论,有效结合了求解智能问题的数据结构以及实现的算法,把人工智能的应用程序应用于实际环境中,并从社会和哲学、心理学以及神经生理学角度对人工智能进行了独特的讨论。新版中增加了对“基于随机方法的机器学习”的介绍,并提出了一些新的主题,如涌现计算、本体论、随机分割算法等。 《人工智能复杂问题求解的结......一起来看看 《人工智能》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具