【发布时间】:2014-10-23 18:12:40
【问题描述】:
我想实现一种代理系统,我可以像这样输入 url:http://example.com/www.stackoverflow.com 并返回 www.stackoverflow.com 的内容。我尝试的是这样的:
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/external/.*
RewriteRule ^/(.*) http://%{HTTP_HOST}/external/$1 [NC,R=302,L]
ProxyPassMatch /external/([A-Za-z]*)/(.*) wwww.stackoverflow.com/$1/$2
ProxyPassMatch /external/(.*) http://$1/
这很好用,但仅适用于 stackoverflow.com,因为它是硬编码的。是否有某种规则使动态 URL 可以工作,所以我可以使用 http://example.com/yahoo.com ?是的,如果尝试硬编码 yahoo.com 或 google.com,而不是重写 url 会自动重定向到 yahoo.com 或 google.com,这是怎么回事?
【问题讨论】:
标签: apache mod-rewrite mod-proxy