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,用户不会注意到这一点。优点是,例如,最终用户书签将保持正确,并以更有指导性的方式规范他们的行为。