是否可以通过代理连接将用户重定向到特定链接?
示例,每当用户访问apache服务器ip地址时:
http://196.169.34.34
apache应将用户重定向到特定端口 3128 上的通过代理服务器( 196.169.34.21 )的特定网址链接
这可能吗?
谢谢
答案 0 :(得分:1)
在196.169.34.34
的vhost配置中,您可以添加:
Redirect / http://196.169.34.21:3128/specific-url
使用您希望将浏览器重定向到的网址替换specific-url
部分。
如果您没有vhost配置访问权限,可以在文档根目录中的htaccess文件中添加重写规则(假设您对htaccess文件和mod_rewrite有适当的覆盖):
RewriteEngine On
RewriteCond %{HTTP_HOST} ^196\.169\.34\.34$
RewriteRule ^(.*)$ http://196.169.34.21:3128/specific-url/(.*)$ [L,R]
您可以通过添加301:
使此重定向永久化Redirect 301 / http://196.169.34.21:3128/specific-url
或
RewriteEngine On
RewriteCond %{HTTP_HOST} ^196\.169\.34\.34$
RewriteRule ^(.*)$ http://196.169.34.21:3128/specific-url/(.*)$ [L,R=301]
答案 1 :(得分:0)
这也可以使用本地解决方案 - 本地PC上的代理PAC文件来完成。此文件的功能是根据URL / URI指示certin流量,以指向某个代理地址,如我的示例所示。
以下是.pac文件的示例代码。您可以获得完整的文档here:
function FindProxyForURL(url, host) {
// First start with the exceptions that need to be proxied
if ((host == "www.company.net") ||
(host == "webmail.company.net") ||
(host == "portal.company.net") ||
(dnsDomainIs(host, ".public.company.net"))) {
return "PROXY proxy1.company.net:8000";
}
// Next, we want to send all traffic to company.net browser direct
if (dnsDomainIs(host, ".company.net")) {
return "DIRECT";
}
// Default return condition is the proxy, since it’s assumed that everything
// else is on the Internet.
return "PROXY proxy1.company.net:8000";
} // End of function
这就是你如何从Windows上的互联网选项中实际调用proxy.pac文件: