xmu*_*mux 2 linux html apache-http-server proxy sed
我将我的 Apache 服务器配置为代理服务器。我在proxy.conf
文件中添加了一些过滤器以更改网站的文本(HTML 源代码)。
示例代码:
ExtFilterDefine foodo mode=output intype=text/html
cmd="/bin/sed -r 's/foo/newfoo/g'"
SetOutputFilter foodo
Run Code Online (Sandbox Code Playgroud)
我也为此启用了所有可能的模组。( mod_proxy
, mod_proxy_html
, ...)
在我曾经也mod_sed
更改过一些文本之后,但我仍然没有积极的解决方案。
<Directory "/var/www/docs/sed">
AddOutputFilter Sed html
OutputSed "s/monday/MON/g"
OutputSed "s/sunday/SUN/g"
</Directory>
Run Code Online (Sandbox Code Playgroud)
这是我的proxy.conf:
ProxyRequests On
ProxyVia On
<Proxy *>
Order deny,allow
Deny from all
Allow from all
</Proxy>
Run Code Online (Sandbox Code Playgroud)
有没有人对这个问题有任何想法?
您应该能够使用mod_substitute。在您的代理配置中,添加:
AddOutputFilterByType SUBSTITUTE text/html
Substitute "s/foo/bar/ni"
Run Code Online (Sandbox Code Playgroud)
我使用以下配置使其工作:
<VirtualHost *:80>
ServerName su-test.int.mtak.nl
ProxyRequests Off
ProxyPreserveHost Off
ProxyPass / http://mtak.nl/
ProxyPassReverse / http://mtak.nl/
RequestHeader unset Accept-Encoding
FilterDeclare CUSTOMFILTER
FilterProvider CUSTOMFILTER SUBSTITUTE resp=Content-Type $*
FilterProvider CUSTOMFILTER SUBSTITUTE resp=Content-Type $/html
<Location />
FilterChain CUSTOMFILTER
Substitute "s|foo|bar|ni"
</Location>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
该行RequestHeader unset Accept-Encoding
是为了确保网络服务器不发送 gzip 响应,Apache 将无法替换其中的内容。
归档时间: |
|
查看次数: |
7708 次 |
最近记录: |