[Apache2] [mod_substitute] [mod_filter] Заменить / отфильтровать / переписать динамический прокси-контент в формате HTML

0

Мы пытаемся переписать HTML-контент (ссылки) сайта ProxyPassed. Мы пробовали что-то вроде этого: http://lamshing.blogspot.de/2010/10/on-fly-subscription-of-text-with.html, но безрезультатно. И теперь застряли: Apache AddOutputFilterByType устарел. Как переписать с помощью mod_filter?

Конец в включенных файлах (например, *.css) заменяется, но не является "корневым" контентом. Мы читаем, что контент ProxyPassed имеет "unkown type" → Фильтры не вступят в силу.

Есть ли у вас какие-либо подсказки, как можно было бы заменить что-то в динамической среде ProxyPassed?

Наша текущая конфигурация:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

Header set TEST ";charset=utf-8"
Header edit TEST ^\s*;charset=utf-8\s*$ "text/html; charset=utf-8"

FilterDeclare MYFILTER
FilterProvider MYFILTER SUBSTITUTE resp=Content-Type $*
FilterProvider MYFILTER SUBSTITUTE resp=Content-Type $/xml
FilterProvider MYFILTER SUBSTITUTE resp=Content-Type $/json
FilterProvider MYFILTER SUBSTITUTE resp=Content-Type $/javascript
        <Location />
                FilterChain MYFILTER
                Substitute "s/You have/AAAAAAAAAAAAAAAAAAAAAAAAA/ni"
        </Location>
        RewriteEngine On
        ServerSignature Off



        ProxyRequests Off


        <Proxy *>
          Order deny,allow
          Allow from all
        </Proxy>

        ProxyPass / http://hmpg.net/
        ProxyPassReverse / http://hmpg.net/


</VirtualHost>
Теги:
dynamic

1 ответ

0
Лучший ответ

Мы получили это, gzip была проблемой.

В Location/add:

RequestHeader unset Accept-Encoding

Не используйте FilterChain и просто добавляйте свой Substitute как:

"Foo1337 = к, бар = к"

Заменить "s | foo ([0-9] +) = k, bar\1 = k | foo/bar = $ 1"

→ "foo/bar = 1337"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню