Переписывание URL на лету с помощью Squid - PullRequest
0 голосов
/ 18 ноября 2018

Я устал от новостных сайтов с автоматическим воспроизведением видео и другим детритом, забивающим мой опыт чтения. Благодаря www.f6oclock.com я обнаружил outline.com. Я люблю. Это. Я написал сценарий greasemonkey / tampermonkey, который работает в Chrome для сопоставления строк URL-адресов с cnn.com, newsweek.com, thehill.com и т. Д., Чтобы читать отдельные статьи в outline.com вместо соответствующих веб-сайтов, и он хорошо работает.

Мне пришло в голову, что я могу сделать общее решение, которое будет работать для всего моего дома и включать мобильные устройства, где я не могу установить greasemonkey. Я помню, что делал что-то подобное с squid или squidguard несколько лет назад, но сейчас я в тупике.

Кажется, что я могу переписать доменное имя, используя url_rewrite_program, изменив "www.cnn.com" на "www.outline.com". То, что я не могу понять, это как изменить "https://www.cnn.com/year/month/day/category/stuff/index.html" на" https://outline.com/https://www.cnn.com/year/month/day/category/stuff.index.html". То есть, кажется, я могу переписать имя хоста, но я не могу понять, как изменить путь .

Если я использую url_rewrite_program и тривиальный скрипт на perl для вывода аргументов в файл журнала, я вижу, что squid передает следующую строку:

www.cnn.com:443 <MY_COMPUTER_IP>/<MY_HOSTNAME> - CONNECT myip=<SQUID_IP> myport=3128

Squid, похоже, не передает путь к программе перезаписи URL. В документах говорится, что мне нужно, чтобы скрипт ничего не выдавал или измененное имя хоста. Сценарий emit "www.outline.com/https://www.cnn.com/" вместо" https://www.cnn.com" не работает. В Chrome возникает ошибка ERR_TUNNEL_CONNECTION_FAILED. Мне интересно, поддерживают ли переписываемые возможности squid только изменение имени хоста, а не пути URL.

Я был RTFMing в течение нескольких часов безрезультатно. Я нахожу старые конфигурации squidguard, использующие раздел 'rew' (cf http://www.cloudportal.org/2012/10/30/filter-youtube-with-youtube-for-schools-and-squidguard/), который, кажется, игнорируется версией squid, установленной с Ubuntu 18.04 (версия squid 3.5.27).

Кто-нибудь может указать мне правильное направление?

...