Apache RewriteRule Proxy 的标头不正确

Apache RewriteRule Proxy 的标头不正确

我正在尝试从我们网站上的某个位置创建到第三方网站的代理。例如

http://www.mysite.com/cat-> 代理至http://www.cat.com

这是我的配置中的一行:

 RewriteRule ^cat/?$ http://cat.com:80 [P]

代理基本上可以正常工作,但问题是它返回错误 400 Bad Request。查看我代理的站点的 Apache 访问日志,传入的请求是:

[18/Oct/2011:13:04:46 +0100] "GET  HTTP/1.1" 400 334 "-" "-"

没有 referrer、host 等任何内容。服务器返回给浏览器:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.2.12 (Ubuntu) Server at {cut} Port 80</address>
</body></html>

有任何想法吗?任何帮助都将非常有用!

谢谢

答案1

 RewriteRule ^cat($|/.*) http://cat.com$1 [P,L]

但这可能会失败。

我们组织中最好的方法是在两者中映射相同的路径:

www.upc.edu/grau-> sites.upc.edu/grau

并不是:

www.upc.edu/grau -> sites.upc.edu/

或者

www.upc.edu/grau -> sites.upc.edu/~grau

如果需要,您可以在目标中创建别名:

Alias /grau /var/www/docs/grau/  (p.e.)

相关内容