我使用mod_proxy和mod_proxy_http将我的apache 2.2服务器配置为一个简单的转发代理。
当客户端请求以下格式的URL时:
http://specific.host.com/specific?specificarg1=(.+)&specificarg2=(.+)&specificarg3=specificvalue
以重写形式请求,其中 specificarg1 和 specificarg2 的值被我的服务器配置中定义的值替换。
也可以不使用正则表达式,而是将特定网址重写为另一个特定网址,但我更喜欢使用正则表达式匹配。
所以在阅读了mod_rewrite,mod_proxy的文档后,我尝试了类似下面的内容,以便进行某种重写:
RewriteRule .* http://www.google.com/ [P,L
]
就像在服务器配置中那样,在代理浏览时没有任何内容被重写
<VirtualHost *:80>
ServerName domain-i-tried-to-surf-to.com
`RewriteRule .* http://www.google.com/ [P,L]
</VirtualHost>
没有运气
ProxyPass(Reverse) / http://www.google.com
ProxyPass(Reverse) /path/i/tried/to/surf/to http://www.google.com
也没有运气
ProxyRemote * http://www.google.com
也没有运气
我还尝试将重写规则放入proxymatch指令中,但我无法重写url。有人能指出我正确的方向吗?
答案 0 :(得分:1)
首先需要在开头添加RewriteEngine on
语句,甚至让mod_rewrite处理任何规则。