2015-07-01 2 views
1

У меня есть файл squid.config, который направляет запросы редиректору. Я действительно хочу, чтобыmime-типы были переданы ему. Вот конфигурации, которые я должен сделать это:url_rewrite_access mimetype фильтрация не работает

url_rewrite_program /usr/bin/python3 /etc/squid3/custom_redirect.py 

#only allow text/html mime types 
acl html_only req_mime_type -i ^text/html$ 
url_rewrite_access allow html_only 

#deny all other requests 
url_rewrite_access deny all 

Когда я звоню веб-сайт, я вижу, что access.log показывает, что я сделал запрос с типом text/html мим, но ни один из них не проходят через редирект. Я огляделся, но никто, кажется, не сталкивался с такой же проблемой, и в документации мне кажется, что я прав. Любые мысли о том, почему это не будет работать?

ответ

0

TL; DR: Проверьте тип MIME внутри url_rewrite_program

Я предположил (основано на том, что большинство людей, вероятно, будут хотеть), что вы пытаетесь достичь, это фильтрация ответа типов MIME , то есть MIME-тип файла на сервере.

Вы бы в теории должны были изменить req_mime_type до rep_mime_type, но продолжайте читать, прежде чем беспокоиться.

Это результат синхронизации различных событий во время обработки Squid HTTP-запроса.

Сразу после получения запроса от клиента Squid оценивает acls, связанный с url_rewrite_access, а затем, если необходимо, выполняется url_rewrite_program. Проблема в том, что Squid не отправил и, следовательно, ничего не получил от сервера, поэтому он не имеет возможности точно оценить rep_mime_type

Моим решением было оценить тип MIME, используя сам сценарий.

Я использовал PHP, но для Python взгляните на this.

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