1、查看Nginx是否有安装sub_filter组件:
执行命令:
显示如下:nginx -V
组件在nginx的名称为:“http_sub_module”则表示有安装组件。[root@blog_tag_gg ~]# nginx -V
nginx version: nginx/1.17.8
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.1.1d 10 Sep 2019
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/www/server/nginx --add-module=srclib/ngx_devel_kit --add-module=srclib/lua_nginx_module --add-module=srclib/ngx_cache_purge --add-module=srclib/nginx-sticky-module --with-openssl=srclib/openssl111 --with-pcre=srclib/pcre-8.43 --with-http_v2_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_stub_status_module --with-http_ssl_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-cc-opt=-Wno-error --with-http_dav_module --add-module=srclib/nginx-dav-ext-module
比如添加到宝塔站点中location / {
root /opt/app/code/;
random_index on;
index index.html index.htm;
sub_filter 'blog_tag_gg' 'www.zfcdn.xyz'; #第一个参数blog_tag_gg替换为:www.zfcdn.xyz
sub_filter_once off; #off:替换所有的,on:只替换第一个
}
改完保存下,使用命令检查nginx语法是否正确(路径更换为自己的路径)server
{
listen 80;
listen 443 ssl http2;
server_name ip.tag.gg 1.1.1.1;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/www.zfcdn.xyz;
sub_filter 'blog_tag_gg' 'www.zfcdn.xyz'; #第一个参数是要被替换的,第二个参数是替换后的
sub_filter_once on; #替换所有的,默认是on,替换第一个
}
nginx -t c /etc/nginx/nginx.conf
平滑重启nginx
nginx -s reload -c /etc/nginx/nginx.conf
测试文件内容如下:
访问后替换的页面如下:(规则设置的是on,所以只替换了第一个字符)我的网站是:blog_tag_gg
<br>
我的网站是:blog_tag_ggaaa
其他范例:我的网站是:www.zfcdn.xyz
我的网站是:blog_tag_ggaaa
指令说明:location / {
sub_filter '<a href="http://127.0.0.1:8080/' '<a href="https://$host/';
sub_filter '<img src="http://127.0.0.1:8080/' '<img src="https://$host/';
sub_filter_once on;
}
- sub_filter指令,用于替换字符串,不区分字符串的大小写
- 使用语法:sub_filter 要替换的字符串 替换后的字符串
- sub_filter_last_modified指令,允许在替换期间保留来自原始响应的“Last-Modified”标题字段以促进响应缓存。默认情况下,在处理期间修改响应的内容时,标题字段被删除。
- 使用语法:sub_filter_last_modified on | off,默认on
- sub_filter_once指令,指示是否查找每个字符串以替换一次或重复替换。
- 使用语法:sub_filter_once on | off,默认on
- sub_filter_types指令,指定MIME类型的字符串替换,除了“ text/html” 之外,还可以在指定MIME类型的响应中启用字符串替换。特殊值“ *”匹配任何MIME类型。
- 使用语法:sub_filter_types mime-type …,默认sub_filter_types text / html;
文章评论 本文章有个评论