http - 如何重写 Squid-Cache 内部 URL?

标签 http mod-rewrite redirect rewrite squid

squid-cache 的 url_rewrite_program 真正重定向了 URL。换句话说,最终用户得到一个响应,说“将页面从 foo 重定向到 bar”,然后用户向重定向地址发出另一个请求。我不想要这个。

我想实现的是类似于apache的mod_rewrite。我想要一个绝对透明的重写机制。这样用户就可以请求特定的内容,并且他会在没有任何 HTTP 重定向的情况下将其作为响应获取(无论他最初请求的 URL 是什么)。

我想避免通过 http 重定向的原因是因为我不希望最终用户看到内部应用程序结构。例如,他请求“application1.foo.com”,他得到的 URL 的内容要长得多。因此,如果最终用户将其加入书签,他就会将我干净的小 URL (application1.foo.com) 加入书签,这有助于让用户远离这些细节,即使我在未来。例如,我可能最初将 application1.foo.com 映射到 badprovider.com/path/to/file.php,然后将其更改为 goodprovider.com/file.php,用户不会注意到这一点。好处是,例如,最终用户书签将保持正确,并以更具指导性的方式规范他们的行为。

最佳答案

您是否尝试过将 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 是您要重定向的域

关于http - 如何重写 Squid-Cache 内部 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6592727/

相关文章:

.net - 调用 RedirectToAction 时 Response.Cookies 会重置

http - Websocket - 客户端应该发送 ping 帧吗?

Java:从 HTTP POST 获取参数和正文

.htaccess 重写 php 分页

apache - 附加查询字符串的重写没有触发?

java - Weblogic 应用程序服务器在 Servlet 映射到 HTML 文件时记录 JSP 错误

objective-c - 如何使 NSURLRequest 获取 Twitter 请求 token ?

c# - 使用 jQuery.ajax() 时,HttpListener 仅获取 InputStream 的前 900 个字节

apache - Laravel 5.1 应用程序可以在没有 .htaccess 重写的情况下运行吗?

php - Apache 2.4 + PHP-FPM ProxyPassMatch htaccess 已处理但在 "internal redirect"之后被忽略