比ngx_http_substitutions_filter_module 更强大的替换模块:replace-filter-nginx-module
, j2 k9 z: V' R1 s, Q/ \8 X+ D8 B这家伙能替换多行文本!6 f6 K8 m& P7 J8 Y W4 V/ U2 ]# l f
2 l0 k7 f2 N! u3 L" E下面只翻译一下,再加个安装教程,因为我自己也没弄懂怎样玩= =
* U6 P3 Q# A q# X7 D7 M' _: o1 ^% c- j/ V& _
1.安装此模块需要先安装sregex运行库" U' q7 x# j: F Q1 V
( u3 ~& }6 ]! ]& e* w% _
[AppleScript] 纯文本查看 复制代码 apt-get update;apt-get install git make gcc -y #Centos改成yum
git clone https://github.com/agentzh/sregex
make
make install
cd ..
git clone https://github.com/agentzh/replace-filter-nginx-module
wget http://nginx.org/download/nginx-1.2.6.tar.gz
tar zxvf nginx-1.2.6.tar.gz
cd nginx-1.2.6
./configure --add-module=../replace-filter-nginx-module #自行加其他编译参数
make
make install
9 u4 t f9 e: [% w$ S5 ^nginx.conf的用法举例:
2 |3 R6 f4 c1 |6 w- {[AppleScript] 纯文本查看 复制代码 location /t {
default_type text/html;
echo abc;
replace_filter 'ab|abc' X;
}
location / {
# proxy_pass/fastcgi_pass/...
# caseless global substitution:
replace_filter '\d+' 'blah blah' 'ig';
replace_filter_types text/plain text/css;
}
2 {( I) I: }) c& g' ~3 z# M+ vSyntax语法:; r/ p% f" C! O. E6 R8 u' M
[AppleScript] 纯文本查看 复制代码 ^ 匹配起始行数
$ 匹配末尾行数
\A match only at beginning of stream
\z match only at end of stream
\b match a word boundary
\B match except at a word boundary
. match any char
\C match a single C-language char (octet)
[ab0-9] character classes (positive)
[^ab0-9] character classes (negative)
\d match a digit character ([0-9])
\D match a non-digit character ([^0-9])
\s match a whitespace character ([ \f\n\r\t])
\S match a non-whitespace character ([^ \f\n\r\t])
\h match a horizontal whitespace character
\H match a character that isn't horizontal whitespace
\v match a vertical whitespace character
\V match a character that isn't vertical whitespace
\w match a "word" character ([A-Za-z0-9_])
\W match a non-"word" character ([^A-Za-z0-9_])
\cK control char (example: VT)
\N match a character that isn't a newline
ab concatenation; first match a, and then b
a|b alternation; match a or b
(a) capturing parentheses
(?:a) non-capturing parantheses
a? match 1 or 0 times, greedily
a* match 0 or more times, greedily
a+ match 1 or more times, greedily
a?? match 1 or 0 times, not greedily
a*? match 0 or more times, not greedily
a+? match 1 or more times, not greedily
a{n} match exactly n times
a{n,m} match at least n but not more than m times, greedily
a{n,} match at least n times, greedily
a{n}? match exactly n times, not greedily (redundant)
a{n,m}? match at least n but not more than m times, not greedily
a{n,}? match at least n times, not greedily 9 S5 I+ l* Q4 p5 u9 G5 Z) a9 J! r" e. a
|