2013-09-09 2 views
1

Возможно ли перенаправить пользователя на определенную ссылку через прокси-соединение?Apache - добавление перенаправления URL через прокси-сервер

Пример, Всякий раз, когда пользователь посещает апач IP-адрес сервера:

http://196.169.34.34 

апач должен перенаправить пользователя на определенный URL ссылки через прокси-сервер (196.169.34.21) на определенный порт , порт

это возможно?

Спасибо

ответ

1

В ВХост конфигурации для 196.169.34.34, вы можете добавить:

Redirect/http://196.169.34.21:3128/specific-url 

Замена specific-url части с URL вы хотите, чтобы браузер будет перенаправлен.

Если у вас нет доступа ВХост конфигурации, вы можете добавить правило перезаписи в файл 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] 
+0

спасибо так много. Кажется, если он может работать, я буду проверять его и сообщать. Один вопрос, хотя, в системе Windows, где я могу найти файл конфигурации vhost? – DextrousDave

+0

У меня есть доступ к конфигурационному файлу vhost, и я добавил эту строку: Перенаправление/http://196.169.34.21:3128/specific-url. Но в браузере он перенаправляет на весь этот URL-адрес не только часть «специфического-url» через прокси-сервер ... – DextrousDave

+1

@DextrousDave, если вы не хотите, чтобы запрошенный URI переносился в перенаправление, измените его на: «RedirectMatch/http: //196.169.34.21: 3128/specific-url' вместо этого, по сути, используя 'RedirectMatch' вместо' Redirect' –

0

Это также можно сделать, используя локальное решение - файл PAC PAC на локальном ПК. Функция этого файла заключается в том, чтобы направить URL-адрес certin на основе URL/URI, чтобы направить на определенный адрес прокси-сервера, как в моем примере.

Вот пример кода файла .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 

Вот как вы на самом деле назвать файл proxy.pac из ваших вариантов интернет на Windows:

enter image description here

Смежные вопросы