如何让Nginx中URL不区分大小写

作者&投稿:撒时 (若有异议请与网页底部的电邮联系)
nginx如何让URL不区分大小写~

1.需要Embedded Perl模块支持
本模块允许在Nginx中直接执行Prel,或者通过SSI调用Perl。
默认是不会编译进Nginx的,如果你要使用,则要在编译安装Nginx指定:

./configure --with-http_perl_module
另外:操作系统中必须安装:Perl5.6.1以上版本
已知问题:
1 ) 如果Perl模块执行长时间操作,例如:DNS查询、数据库查询等,运行Perl脚本的工作进程将一直处于阻塞状态,因此内置的Perl脚本应该非常简单,执行尽可能快。
2)Nginx在通过“Kill -HUP ”命令重新加载配置文件时,可能会导致内存泄露。
详细配置方法:
1.增加一个方法
perl_set $url '
sub {
my $r = shift;
my $re = lc($r->uri);
return $re;
}
';
2.增加一个判断条件
if ($uri ~ [A-Z]){
rewrite ^(.*)$ $url last;
}
说明:
Perl需要Perl 5.6.1以上版本支持
整个配置文件如下:
-----------------------------------------------------------------------
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
tcp_nopush on;
#gzip on;
perl_set $url '
sub {
my $r = shift;
my $re = lc($r->uri);
return $re;
}
';
server {
listen 80;
server_name localhost;
if ($uri ~ [A-Z]){
rewrite ^(.*)$ $url last;
}
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
include xx.cn/xx.conf;
}
}

采用nginx官提供Perl Moudle注意模块并没自加载需要运行配置文件增加--with-httpperlmodule首先location要匹配ooo目录要匹配剩余uri写则调用perlurl全部转写rewrite参考配置代码:
#测试perl统转写功能
perl_set $url '
sub {
my $r = shift;
my $lurl = lc($r->uri);
return $lurl;
}
';

采用nginx官方提供的Perl Moudle,注意这个模块并没有自动加载,需要运行配置文件时增加--with-httpperlmodule。首先,location要匹配到ooo目录,然后要匹配剩余uri,如果有大写,则调用perl将url全部转成小写,然后rewrite,参考配置代码:
#测试perl的统一转小写功能
perl_set $url '
sub {
my $r = shift;
my $lurl = lc($r->uri);
return $lurl;
}
';


tp框架u方法跳转路径 nginx 为什么本地有效,服务上的就会出现路径错误...
本地可以,放到服务器不行,记得要用相对路径,不要用绝对路径啊。求采纳

centos系统编译安装nginx+php环境另加独立mysql教程
后端(独立mysql)ip:192.168.10.5 软件版本:libiconv-1.14.tar.gz mysql-5.1.63.tar.gz php-5.2.17.tar.gz php-5.2.17-fpm-0.5.14.diff.gz php-5.2.17-max-input-vars.patch 1.先在后端安装mysql 在192.168.10.5上只安装mysql.方法可以去看centos编译安装nginx+php-fpm+mysql里...

服务器500错误,服务器是Nginx的。
3 重新启动nginx,重新载入设置 复制代码代码如下:kill -9 `ps -ef | grep php | grep -v grep | awk '{print $2}'`\/usr\/bin\/spawn-fcgi -a 127.0.0.1 -p 9000 -C 100 -u www-data -f \/usr\/bin\/php-cgi killall -HUP nginx 重启后再看nginx的错误日志,也没有发现500报错的...

如何用Nginx源码制作RPM包的详解
3、下载Nginx源码包 下载源码包到SOURCES目录,不需要解压。4、手工创建SPEC文件,由于spec文件是由spec语言编写的,请注意spec语言的语法。SPEC文件内容如下:Example Spec File For Nginx Edited By LaoXu 7.Mar.2013 Summary: High Performance Web Server Name: nginx Version: 1.3.9 Release: el5...

我的freebsd系统下Nginx PHP提示出现The page you are looking for i...
netstat -anpo|grep “php-cgi”|wc -l 如果输出为0的话,则表示FastCGI 进程数够大,2.此时则修改scgi_params文件,找到:scgi_param SCGI 1;把它改为:scgi_param SCGI 5;3.PHP程序如果的执行时间超过了Nginx的等待时间,就可适当地增加nginx.conf配置文件中FastCGI的timeout时间,例如:http {...

Ingress-nginx日志切割与轮循方案
从history看,这个镜像也只是在alpine之上,安装了bash,logrotate软件,然后,拷贝并启动了start.sh文件。二, Dockerfile 为了不与k8s绑死,我们不使用configmap作配置文件,而是使用使用环境变量生成nginx.log配置。Dockerfile nginx.log模板 start.sh重写 脚本使用传入的环境变量,替换掉nginx.log模板文件中...

helm部署公网LB ingress-nginx
这里选用 kubernetes 提供的chart仓库 如果在国内拉取官方镜像导致部署失败,可以将ingress-nginx需要的镜像推送到自有镜像仓库,然后使用自有镜像仓库参考操作如下: 将官方镜像上传到自有镜像仓库, 以仓库地址: uhub.service.ucloud.cn\/ucloud_pts为例,需要同步镜像列表如下:关于docker pull tag push 操作...

windows10系统如何更改UG8.0背景颜色|win10更改UG8.0背景颜色的方法_百 ...
从事设计工作的用户,相信对UG8.0并不陌生。不过,最近有些使用windows10系统的用户反馈,UG8.0的默认背景颜色并不是自己想要的,非常影响自己的画图和建模质量,这该怎么办呢?下面,小编就分享下win10系统更改UG8.0背景颜色的具体方法。具体方法如下:1、打开UG8.0软件,在左上角“文件”菜单中找到...

怎么检查nginx服务器有没有安装好
n location{}是用来为匹配的 URI 进行配置,URI 即语法中的“\/uri\/”。location \/ { }匹配任何查询,因为所有请求都以 \/ 开头。u root指定对应uri的资源查找路径,这里html为相对路径,完整路径为\/opt\/ opt\/nginx-1.7.7\/html\/ u index指定首页index文件的名称,可以配置多个,以空格分开。

k8s-ingress控制器
默认配置从 所有名称空间 监视Ingress对象。若要更改此行为,请使用该标志 --watch-namespace 将范围限制为特定的名称空间。裸机安装: 版本不同具体根据查看官网 https:\/\/kubernetes.github.io\/ingress-nginx\/deploy\/ 配置通过主机80,443端口访问 github 安装文档 Kubernetes中的Ingress API使大量控制器...

梁河县13937544570: 如何让Nginx中URL不区分大小写 -
禤路扶信: 采用nginx官方提供的Perl Moudle,注意这个模块并没有自动加载,需要运行配置文件时增加--with-httpperlmodule.首先,location要匹配到ooo目录,然后要匹配剩余uri,如果有大写,则调用perl将url全部转成小写,然后rewrite,参考配置代码: #测试perl的统一转小写功能 perl_set $url ' sub { my $r = shift; my $lurl = lc($r->uri); return $lurl; } ';

梁河县13937544570: nginx url地址怎么设置可以忽略大小写
禤路扶信: linux文件名区分大小写,你可以通过重写实现

梁河县13937544570: nginx如何设定某个目录下的文件不区分大小写 -
禤路扶信: 右键程序 设定 更改

梁河县13937544570: ThinkPHP 网址格式URL地址怎么设置~呢? -
禤路扶信: thinkPHP的URL在config中配置 一、URL规则1、默认是区分大小写的2、如果我们不想区分大小写可以改配置文件'URL_CASE_INSENSITIVE'=>true,//url不区分大小写3、如果模块名为 UserGroupAction,那么url找模块就必要要写成 http://...

梁河县13937544570: Linux Nginx服务器怎么样实现网站不区分大小写 -
禤路扶信: 因为linux是严格区分大小写的,估计你要想实现这个需求,需要去修改nginx的源码,自行编译

梁河县13937544570: nginx的location配置文件在哪 -
禤路扶信: 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格). ~ 开头表示区分大小写的正则匹配 ~* 开头表示不区分大小写的正则匹配

梁河县13937544570: 如何设置301/302重定向 -
禤路扶信: 首先看一个完整代码示例,关于nginx 301 302跳转的.301跳转设置:server {listen 80;server_name downcc;rewrite ^/(;rewrite ^/(.*) /$1 permanent;}last – 基本上都用这个Flag.break – 中止Rewirte,不在继续匹配redirect ...

梁河县13937544570: 关于网址URL是否区分大小写的问题 -
禤路扶信: 网站原来的机型列表不全面不完善,需要重新做机型表,但是问题来了,以前有的机型不规范是大写字母,现在要改为小写字母,于是引出域名和路径大小写的问题. 网址的基本结构是:[协议]://[域名]/[路径],经过测试和查询,确定其中协议...

梁河县13937544570: url规则怎么改成Thinkphp的pathinfo模式 -
禤路扶信: 在config目录下边来做修改 URL_MODEL的值,分别表述如下:1. 值为0 叫做普通模式.如:http://localhost/index.php?m=模块&a=方法2. 值为1 叫做pathinfo模式.如:http://localhost/index.php/模块/方法3. 值为2 叫做rewrite重写(伪静态) 可以...

梁河县13937544570: 怎么设置nginx不区分大小写 -
禤路扶信: 采用nginx官提供Perl Moudle注意模块并没自加载需要运行配置文件增加--with-httpperlmodule首先location要匹配ooo目录要匹配剩余uri写则调用perlurl全部转写rewrite参考配置代码: #测试perl统转写功能 perl_set $url ' sub { my $r = shift; my $lurl = lc($r->uri); return $lurl; } ';

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网