2

squid-cache 的 url_rewrite_program 确实重定向了 URL。换句话说,最终用户会收到一个回复​​,上面写着“将页面从 foo 重定向到 bar”,然后用户向重定向的地址发出另一个请求。我不想要这个。

我想要实现的类似于 apache 的 mod_rewrite。我想要一个绝对透明的重写机制。这样用户请求一个特定的内容,并且他得到它作为响应(不管他最初请求的 URL 是什么),而没有任何 HTTP 重定向。

我想避免通过 http 重定向的原因是因为我不希望最终用户看到内部应用程序结构。例如,他请求“application1.foo.com”,他得到一个更长的 URL 的内容。因此,如果最终用户将其添加为书签,他会将我干净的小 URL(application1.foo.com)添加为书签,这样可以使用户远离此类详细信息,即使我在其中更改它最终也会为他们提供服务的统一 URL未来。例如,我可能最初将 application1.foo.com 映射到 badprovider.com/path/to/file.php,然后将其更改为 goodprovider.com/file.php,用户不会注意到这一点。优点是,例如,最终用户书签将保持正确,并以更有指导性的方式规范他们的行为。

4

1 回答 1

1

您是否尝试使用“加速”模式将 squid 设置为反向代理?它对我有用:

acl all src all

http_port 3128 accel vhost
cache_peer 127.0.0.1 parent 80 0 no-query originserver name=myAccel
acl our_sites dstdomain your_domain.net
http_access allow our_sites
http_access deny all
cache_peer_access myAccel allow our_sites
cache_peer_access myAccel deny all
negative_ttl 0

access_log /var/log/squid/access.log squid
hosts_file /etc/hosts
coredump_dir /var/spool/squid

your_domain.net 是您要重定向的域

于 2011-07-11T13:30:14.057 回答