Nginx架构篇(16)Rewrite - 访问目录URL自动添加“/”
  UYqGUrvNnnTe 2023年11月02日 42 0

例五  访问目录URL自动添加“/”

在访问的url是目录时,在URL自动添加一个“/”  (如果不是目录,则不加/)
(但是先做个判断,是目录才需要加,不是目录就不加。)
当用户访问网站时,输入的URL不完整。
1.输入的URL是目录时,自动添加“/”
http://www.baidu.com/abc
2.输入的URL是文件时,不添加“/”
http://www.baidu.com/abc/index.html
3.输入的URL是目录,但已经添加"/"时,不添加“/”
http://www.baidu.com/abc/

环境:

mkdir /usr/share/nginx/html/dir       准备目标目录
echo '/usr/share/nginx/html/dir/' > /usr/share/nginx/html/dir/index.html 准备目录文件

配置地址重写:

vim /etc/nginx/conf.d/default.conf
if (-d $request_filename) {
rewrite ^(.*)([^/])$ http://$host$1$2/ permanent;
}

#-d:检查文件目录
#$request_filename:当前请求的文件路径名
#^(.*)([^/])$:任意字符开头,不是/结尾
#$host:请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名


systemctl restart nginx

访问页面进行测试:

elinks 192.168.19.100/dir

Nginx架构篇(16)Rewrite - 访问目录URL自动添加“/”_linux

触发重定向,url后方多了“/”

elinks 192.168.19.100/dir/

Nginx架构篇(16)Rewrite - 访问目录URL自动添加“/”_linux_02

未触发重定向,url后方没有变化


将旧url中的字段,引入重定向后新url中

http://www.tianyun.com/login/tianyun.html    
转为
http://www.tianyun.com/reg/login.php?user=tianyun
引用‘tianyun’关键字
location /login {
rewrite ^/login/(.*)\.html$ /reg/login.php?user=$1;
}


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  ehrZuhofWJiC   2024年05月17日   36   0   0 linuxsvn
  ehrZuhofWJiC   2024年05月17日   41   0   0 KVMlinux
  ehrZuhofWJiC   2024年05月17日   46   0   0 服务器linux
UYqGUrvNnnTe