1

是否可以通过代理连接将用户重定向到特定链接?

例如,每当用户访问 apache 服务器 ip 地址时:

http://196.169.34.34 

apache 应通过特定端口3128上的代理服务器(196.169.34.21 )将用户重定向到特定的 url 链接

这可能吗?

谢谢

4

2 回答 2

1

在 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]
于 2013-09-09T20:33:51.567 回答
0

这也可以使用本地解决方案 - 本地 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 文件的方式:

在此处输入图像描述

于 2013-09-13T11:28:25.277 回答