ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

nginx url地址重写功能

2021-08-04 23:03:41  阅读:248  来源: 互联网

标签:rewrite url auth nginx htpasswd 跳转 重写


Nginx的url地址重写功能,主要是使用nginx提供的rewrite功能,且支持正则表达式
rewrite能够实现url的跳转,实现url规范化,根据请求的变量实现url跳转等等,
基于url重写功能常见的效果如下
对于爬虫程序的封禁,让其跳转到一个错误页面
动态的url,伪装成静态的html页面,便于搜索引擎的抓取
新旧域名的更新,替换

rewrite语法
rewrite ^/(.) http://192.168.178.134/$1 parmanent;
rewrite 是nginx地址重写的关键词指令,开启跳转功能
正则 ^/(.
) 表示匹配所有的请求,匹配成功后,跳转到后面指定的url地址
$1是取出前面正则表达式分组括号里的内容
parmanent 表示301 重定向的标记
rewrite结尾的参数标记如下
Last 规则匹配完成后,继续向下匹配新的location
break 本条规则匹配万抽,立即停止匹配动作
Redirct 返回302临时重定向状态码,浏览器地址栏显示跳转后的url ,爬虫不会更新该url
Permanent 返回301永久重定向,浏览器地址栏显示跳转后的url,爬虫会更新该url

last和break用于实现url重写,浏览器的地址栏不会发生变化
redirct和permanent也是用于url跳转,浏览器url地址栏发生变化,跳转到新的url地址栏

实现一个301URL跳转
准备一个配置文件,实现,当用户访问,直接跳转百度页面
server{
listen 90;
server_name _ ;

最低级请求,所有请求都走到这里

location / {
rewrite ^/(.*) http://wwww.baidu.com/$1 permanent;
}
}

Nginx访问认证
nginx提供了认证模块
location / {
auth_basic 'zzz';
auth_basic_user_file conf/htpasswd;
}

linxu提供了密码生成命令
htpasswd 是apache提供的密码生成工具,nginx也支持auth_basic模块,因此我们可以利用Htpasswd命令生成
账号密码文件,提供给nginx使用
yum install httpd-tools -y

语法
htpasswd -bc .access username password
-b 在命令行中输入 账号密码
-c 创建密码文件
username 账号
password 密码

默认.access文件采用md5方式加密验证

实操:
生成密码文件
[root@localhost extra]# htpasswd -bc ./htpasswd jay 666
准备一个用于练习认证模块的配置文件
server{
listen 95;
server_name _;
location / {
root html/learn_auth;
index index.html;
auth_basic "learn nginx auth";

nginx会去这个文件中验证账号密码

    auth_basic_user_file /opt/nginx1.8/conf/extra/htpasswd;

}
}

标签:rewrite,url,auth,nginx,htpasswd,跳转,重写
来源: https://www.cnblogs.com/sprr/p/15101163.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有