目标: 根据请求的特定标头(HTTP_SM_USER)值(在Site1中)执行从Site1到Site2的条件重定向/转发,并确保所有当前自定义标头数据作为重定向/转发的一部分转发到Site2。用户可以在重定向后在浏览器窗口中看到网址更改。
流量: 用户访问站点1 - > 外部应用程序根据特定条件设置除默认HTTP标头之外的一些自定义标头 - > Web服务器查找特定标头值如果匹配将所有标题重定向到站点2。
Apache Web服务器配置:
<VirtualHost *.443>
ServerName site1.com
ServerAdmin ashish@test.com
UseCanonicalName on
DocumentRoot /var/www/html
#
# SSL Config comes here
#
ErrorLog /path/to/error/log
TransferLog /path/to/access/log
LogLevel warn
RewriteEngine On
RewriteCond %{HTTP:SM_USER} ^USER1$ [NC]
RewriteRule .* https://site2.com/$1 [R=301, L]
<Location /page1>
.
.
</Location>
.
.
.
</VirtualHost>
问题:条件重定向发生但标题丢失。我该怎么做才能确保HTTP标头也被转发?我试着看看apache mod_proxy但是不确定在这个场景中如何使用它。专家请帮忙。我们也欢迎任何其他建议。
答案 0 :(得分:0)
<强>解决方案:强>
在使用以下标志和代理规则进行大量故障排除后,我终于使用了mod_proxy。所有重写规则都已删除。
ProxyRequests Off
ProxyPreserveHost On
SSLProxyEngine On
ProxyPass "/" "https://site2.com/" Keepalive=On
ProxyPassReverse "/" "https://site2.com/"
注意:用户访问站点1 - &gt;外部应用程序将标头和apache立即代理到站点2.现在可以在Site2上使用标头。