我有一台内部服务器,需要将入站请求重写到另一个内部框,出于愚蠢的原因,两台机器都启用了基本身份验证。为了绕过两级身份验证,并且由于这些只是内部服务器,我认为我可以做这样的事情:
RewriteCond %{REQUEST_URI} /api/service
RewriteRule /api/service/(.*) http://uname:[email protected]/$1 [L,P]
我的期望是,当应用此重写时,uname:pword 将被带到下一台服务器。
我认为'P'标志导致这种情况不会发生,但我要求这是一个代理请求,因为发起请求的浏览器不会对来自与请求去往的 uri 不同的响应做出积极响应。
谢谢
答案1
其中一种方法(我相信有更简单的方法......但是)是您可以正常对第一个框进行基本身份验证,例如http://userxx:[email protected]/
然后使用类似这样的内容生成所需的授权标头;
<Location /api/service>
Order Deny,Allow
Allow from All
#echo username:password | base64
RequestHeader set Authorization "Basic ZmFzZ11fef1111111NlbnlpcAo"
ProxyPass http://actualservice.uri.com/api/service
</Location>
并使用此命令生成 base64 哈希;
echo username:password | base64