Mod rewrite 为什么httpd.conf中的rewriteRule在此Apache代理服务器上不起作用?

Mod rewrite 为什么httpd.conf中的rewriteRule在此Apache代理服务器上不起作用?,mod-rewrite,proxy,Mod Rewrite,Proxy,我知道这个问题与本网站上的其他问题类似。我花了几天时间阅读这些帖子,尝试不同的方法。没有一个奏效 我正在尝试使用Apache代理服务器将特定URL映射到新URL。我在本地网络上有一个专用设备(黑匣子),可以调用original.remoteHost1.com。我希望在此本地网络上使用Apache代理服务器,在黑盒请求服务时,用new.remotehost2.com替换original.remoteHost1.com。我可以将Black Box配置为指向代理服务器,但Black Box不会公开一个

我知道这个问题与本网站上的其他问题类似。我花了几天时间阅读这些帖子,尝试不同的方法。没有一个奏效

我正在尝试使用Apache代理服务器将特定URL映射到新URL。我在本地网络上有一个专用设备(黑匣子),可以调用original.remoteHost1.com。我希望在此本地网络上使用Apache代理服务器,在黑盒请求服务时,用new.remotehost2.com替换original.remoteHost1.com。我可以将Black Box配置为指向代理服务器,但Black Box不会公开一个接口来更改HTTP服务请求的目标主机

Black Box只提出两个非常具体的请求:

  • 我想改为:

  • 作为代理,Apache服务器接受黑盒请求并将其转发到original.remoteHost1.com。我希望我能够使用httpd.conf中的rewriteRule将original.remoteHost1.com更改为new.remotehost.com,但我无法让这个看似简单的函数工作

    我曾尝试使用以下重写规则(以及许多变体)替换new.remotehost.com替换original.host.com,但我似乎无法让Apache实际进行替换:

    LoadModule rewrite_module modules/mod_rewrite.so
    RewriteEngine on
    RewriteCond %{HTTP_HOST} original.remoteHost1.com
    RewriteRule   ^(.*)  http://new.remotehost2.com/$1 [P]
    

    有人知道为什么新的URL不能代替原来的吗?

    我解决了这个问题。我不记得为什么我尝试了这个,我当然不知道为什么它有效。我正在运行Windows7。文件夹C:\Windows\System32\Drivers\etc\中有一个名为“hosts”的文件。在该文件中,在与localhost name解析相关的部分中,我添加了以下行:

    127.0.0.1   original.remoteHost1.com
    
    完成此操作后,rewriteCond和rewriteRule按照我的预期运行