是否可以通过代理连接将用户重定向到特定链接?
例如,每当用户访问 apache 服务器 ip 地址时:
http://196.169.34.34
apache 应通过特定端口3128上的代理服务器(196.169.34.21 )将用户重定向到特定的 url 链接
这可能吗?
谢谢
在 vhost 配置中196.169.34.34
,您可以添加:
Redirect / http://196.169.34.21:3128/specific-url
将部分替换为specific-url
您希望将浏览器重定向到的 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]
这也可以使用本地解决方案 - 本地 PC 上的代理 PAC 文件来完成。该文件的功能是根据 URL/URI 将某些流量定向到某个代理地址,就像在我的示例中一样。
这是 .pac 文件的示例代码。您可以在此处获取完整文档:
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 上从 Internet 选项中实际调用 proxy.pac 文件的方式: