我为https ://sb.domain1.com
定义了一个Apache虚拟主机,我需要根据调用虚拟主机的IP地址执行不同的操作。如果来自172.16.xxx.yyy
,则我需要重定向到http ://sb.domain2.com
,否则我需要重定向到http ://sb.domain1.com
。
那是我不知道如何翻译以下行(来自/etc/http/conf.d/ssl.conf文件):
<VirtualHost 192.168.254.68:443>
ServerName sb.domain1.com
SSLProxyEngine on
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateChainFile /etc/httpd/conf/ssl.crt/STAR.ca-bundle
SSLEngine on
SSLSessionCacheTimeout 600
if IP = 172.16.xxx.yyy
then
Redirect to http ://sb.domain2.com
else
ProxyPass / http ://sb.domain1.com/
ProxyPassReverse / http ://sb.domain1.com/
else
ErrorLog "|/usr/sbin/rotatelogs /var/log/httpd/sb/ssl_error_log 86400"
CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/sb/ssl_access_log 86400" combined
</VirtualHost>
你能建议我翻译上述指令吗?
答案 0 :(得分:0)
有些事情应该有效:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^172\.16\.
RewriteRule ^/(.*) http://sb.domain2.com/$1 [L,QSA]
然后只是
ProxyPass / http://sb.domain1.com/
ProxyPassReverse / http://sb.domain1.com/
毕竟,如果您匹配IP,您将被重定向,因此此处不会发出任何其他请求。然后其他人将被代理。