Есть такая задача, что бы всех пользователей, независимо от того, какой сайт они запросили, перебрасывало на мою страницу с напоминанием об оплате услуг. На gw стоит FreeBSD и рулится это все ipfw. делаю divert с 80-го порта на порт апача (8000 в моем случае), но вот беда: к апачу приходят запросы типа google.ru, rambler.ru ... а т.к. в нем стоит Listen 127.0.0.1, то он попросту не обрабатывает данные запросы. Нужно изменить адрес назначения, т.е. что бы вместо google.ru он запрашивал ип с моим ip-адресом. Как это сделать - незнаю. Может подскажете решение проблемы (можно и альтернативные решения).
>Может подскажете решение проблемы (можно и альтернативные решения).Некрасивое решение:
Какую ошибку отдаёт Apache? Напиши свой скрипт для перенаправления на нужную страницу и поставь его обработчиком этой ошибки.
Apache В ошибках вообще ничего не пишет, ибо по всей видимости он даже не получает этот запрос, т.к. правило divert направляет запрос с конкретным адресом назначения, а в конфиге апача настроено Listen ип-адрес, поэтому, я думаю, что апач просто напросто не получает этих запросов.Думаю здесь нужно использовать proxy. Но как сконфигурить squid под это дело - ума не приложу (если вообще такое возможно)
>Думаю здесь нужно использовать proxy. Но как сконфигурить squid под это дело
>- ума не приложу (если вообще такое возможно)Такое точно возможно (мой провайдер так делает). И действительно, только что проверил, судя по заголовкам, этим занимается Squid!
>Думаю здесь нужно использовать proxy. Но как сконфигурить squid под это дело
>- ума не приложу (если вообще такое возможно)Правильно, squid прикрутить надо. А потом к сквиду - редиректор, rejik или squidGuard.
Потом наступает счастье.
Можно или заменить страницу ошибки (404 и 403) или сделать элегантно с использование mod_rewrite:RewriteEngine On
RewriteRule .+ /tvoya.straniza.html [L]