Permitir una determinada ruta de URL con Squid

Estoy usando Squid 3.4 en Debian, y quiero saber cómo permitir ciertas sub-URLs mientras que la prohibición del rest de ellos.

En particular, quiero prohibir el acceso a networkingdit.com/* pero permitir el acceso a networkingdit.com/r/foo/* y networkingdit.com/r/foo/

acl bad url_regex networkingdit\.com.* acl good url_regex networkingdit\.com.*foo* http_access deny bad http_access allow good ... http_access allow localnet http_access allow localhost http_access deny all 

Este código no parece funcionar, y todo en networkingdit.com termina siendo bloqueado. ¿Cómo puedo get la configuration que quiero?

Editar: configuration actualizada que aún no funciona:

 acl good url_regex http(s)?://(www\.)?networkingdit\.com/r/foo.* acl bad url_regex http(s)?://(www\.)?networkingdit\.com.* http_access allow good http_access deny bad ... http_access allow localnet http_access allow localhost http_access deny all 

Esto tiene el efecto opuesto del código anterior; que permite el acceso a todos networkingdit.com (que no quiero).

El order es importante. Ponga la línea de permiso antes de denegar.

También url_regex coincide con una URL entera incluyendo http: // así que necesitas cambiar tus regexes. Recuerde reiniciar o volver a cargar el calamar después de los cambios.

Para cualquier persona como yo que tropezones a través de este poste que busca una respuesta. La razón es que Squid no puede ver la URL completa para las requestes HTTPS, sólo el dominio.

Sólo puede realizar url_regex para las conexiones HTTP. Tienes que hacer un dstdomain para HTTPS conexiones.

Es a la manera en que funciona el proxy CONNECT y no a un problema de Squid.

se describe aquí; http://wiki.squid-cache.org/SquidFaq/SquidAcl

Mi configuration actual es así;

 acl special_client src 10.1.255.93 acl special_url url_regex ^http://ppa.launchpad.net/adiscon/v8-devel/ubuntu/.* http_access allow special_client special_url http_access deny special_url 

Creo que estás buscando algo como esto:

 http_access allow good http_access deny bad !good 

Porque en realidad el good regexp coincide con el regexp bad así así que necesita usar el conector AND en la segunda línea.

Tenga en count que puede depurar ACL con esta línea:

 debug_options ALL,1 28,3 33,2