nginx的ngx_http_lower_upper_case模块可以大小写转换,我们可以通过和location配合来实现url的大小写转换。
ngx_http_lower_upper_case模块下载地址: https://github.com/replay/ngxhttplowerupperca
直接使用git clone https://github.com/replay/ngxhttplowerupperca 下载即可。
安装git
yum -y install git
下载模块
git clone https://github.com/replay/ngxhttplowerupperca
查看nginx编译时的参数
/usr/local/nginx/sbin/nginx -V
进入到nginx源码目录
./configure --prefix=.........(安装时那些东西) --add-module=/path/ngx_http_lower_upper_case-master(模块下载到本地的路径)
编译
make
替换nginx文件
cp ./objs/nginx /usr/local/nginx/sbin/nginx
然后查看有没有安装成功
/usr/local/nginx/sbin/nginx -V
然后可以修改nginx.conf或者xxxx.com.conf来实现url转换
vi /usr/local/nginx/conf/nginx.conf
匹配到url中包含大写英文字母的,就全部转换为小写,然后通过伪静态把访问的url301到小写的url上。
location ~ [A-Z+] {
lower $var1 $request_uri;
rewrite ^(.*)/ $var1 permanent;
}
我这个例子是把所有的大写变成小写,如果只是想变部分的,直接改location即可,如果要把url全部转换为大写的url,把lower换成upper ,需要注意的是,lower/upper不能写在if里,我写在if里提示语法错误,未识别,不知道是版本问题还是都这样。
注意:安装完模块之后,写完上面的规则了,需要重启nginx,-s reload是不好使的,需要重启,这个坑我已经踩过了。
转自:https://blog.youkuaiyun.com/wojiuwangla/article/details/84633166