Мы пытаемся переписать 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>
Мы получили это, gzip была проблемой.
В Location/add:
RequestHeader unset Accept-Encoding
Не используйте FilterChain и просто добавляйте свой Substitute как:
"Foo1337 = к, бар = к"
Заменить "s | foo ([0-9] +) = k, bar\1 = k | foo/bar = $ 1"
→ "foo/bar = 1337"