nginx rewrite标签配置以及用户认证配置
一、nginx rewrite标签
rewrite 实现URL的改写主要是实现伪静态
1、 rewrite指令语法
指令语法:rewrite regex replacement[flag]
默认值:none
应用位置:server,location,if
rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到replacement部分内容,结尾是flag标记,下面是一个简单的URL Rewrite跳转
Rewrite ^/(.*)http://www.etiantian.org/$1 permanent
上述rewrite【指令说明:】
rewrite为固定关键字,表示开启一条rewrite匹配规则,regex部分
这是一个正则表达式
【匹配所有】,匹配成功后跳转到http://www.etiantian.org/$1,这是取前面regex部分()里的内容,结尾permanent;表示永久301重定向标记



在以上flag标记中,last和break用来实现URL重写,浏览器地址URL地址不变,但是在服务器端访问的程序及路径发生变化,redirect和permanent用来实现URL跳转,浏览器地址栏会显示跳转后的URL地址
last和break标记的实现功能类似但是二者之间有细微的差别,使用alias指令的时候必须用last标记,使用proxy_pass指令的时候要使用break标记,last标记在本条rewrite规则执行完毕之后,会对其所在的server{...}标签重新发起请求,而break标记则在本条规则匹配完成后终止匹配,不再匹配后面的规则
、配置301跳转的方法如下: [root@A conf]# vim extra/www.conf
server {
listen ;
server_name www.cnblogs.c; --》老域名
rewrite ^(.*) http://www.cnblogs.co/$1 permanent;
}
server {
listen ;
server_name www.cnblogs.co; --》新域名
location / {
root html/www;
index index.html index.htm;
}
access_log logs/access_www.log main;
}别名状态是200,rewrite状态码是301
区别:
用别名,效率高 但是看不到改过的域名
跳转,可以看到新的域名,但是这是新的跳转,对于pv来说是两次请求 、检查语法,然后重启nginx
、用curl -I 查看是否为301
[root@oldboy extra]# curl -I www.cnblogs.c
HTTP/1.1 Moved Permanently
Server: nginx/1.8.
Date: Sun, Mar :: GMT
Content-Type: text/html
Content-Length:
Connection: keep-alive
Location: http://www.cnblogs.co// [root@oldboy extra]# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.cnblogs.c
301跳转步骤
NginxRewrite的应用
、 可以调整用户浏览的URL ,看起来更规范,合乎开发及产品的需求
(这个rewrite主要是开发的事情,没有要求就不做301跳转)
、 为了让搜索引擎收录网站内容及用户体验更好,企业会将动摇URL地址伪装成静态地址提供服务
、 网站更换新域名后,让旧的域名的访问跳转到新的域名商上,例如:让京东的360buy变成了jd.com
、 根据特殊变量、目录、客户端的信息进行URL跳转等
二、nginx访问认证
可以在官网找到auth basic_module
Http状态码301和302的区别
、什么是301重定向?
301重定向/跳转一般,表示本网页永久性转移到另一个地址。
301是永久性转移(Permanently Moved),SEO常用的招式,会把旧页面的PR等信息转移到新页面;
、什么是302重定向?
302重定向表示临时性转移(Temporarily Moved ),当一个网页URL需要短期变化时使用。
、301重定向与302重定向的区别
301重定向是永久的重定向,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向之后的网址。
302重定向是临时的重定向,搜索引擎会抓取新的内容而保留旧的网址。因为服务器返回302代码,搜索引擎认为新的网址只是暂时的
301和302的区别
打开一个网站需要用户名密码,例如企业网站后台、Mysql客户端phpmyaadmin
auth_basic 提示
语法 auth_basic string|off
默认值 auth_basic off
使用位置http,server,location,limit_except auth_basic_user_file 密码文件
语法 auth_basic_user_file file
默认值-
使用位置:http,server,location,limit_except
用户认证需要注意参数
auth_basic_user_file 参数后接认证密码文件,格式为 #comment
name1:password1
name2:password2:comment
name3:password3
auth_basic_user_file 参数后接认证密码文件,格式为
1、首先安装httpd模块
2、检查
[root@oldboy conf]# which /usr/bin/htpasswd
/usr/bin/htpasswd
[root@oldboy conf]# rpm -qf /usr/bin/htpasswd
httpd-tools-2.2.-.el6.centos..x86_64
3、配置配置文件
[root@oldboy extra]# cat bbs.conf
server {
listen ;
server_name bbs.cnblogs.co cnblog.co;
location / {
auth_basic "pyrene RZ";
auth_basic_user_file /application/nginx/conf/htpasswd;
root html/bbs;
index index.html index.htm;
}
access_log logs/www_access.log main;
}
这里的配置文件也可以自己设置
location /pyrene/{
auth_basic "pyrene RZ";
auth_basic_user_file /application/nginx/conf/htpasswd;
root html/bbs;
index index.html index.htm;
}
}
这样就属于网站后台自己访问的时候需要
4、设置密码文件
[root@oldboy conf]# cd extra/
[root@oldboy extra]# htpasswd -cb /application/nginx/conf/htpasswd pyrene
Adding password for user pyrene
查看密码 这里密码是加密的
[root@oldboy conf]# chmod htpasswd ---给密码文件设置权限
[root@oldboy extra]# cat /application/nginx/conf/htpasswd
pyrene:slT12PdNWhfkc
5、重启
[root@oldboy bbs]# /application/nginx/sbin/nginx -t
nginx: the configuration file /application/nginx-1.8//conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.8//conf/nginx.conf test is successful
[root@oldboy bbs]# /application/nginx/sbin/nginx -s reload
示例

nginx rewrite标签配置以及用户认证配置的更多相关文章
- centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课
centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 ...
- SVN+Apache域用户认证配置方法_Windows(转,重新排版,部分内容更新优化)
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- CentOS 7 安装配置带用户认证的squid代理服务器
这里只简述搭建一个带用户认证的普通代理 一.安装 安装过程十分简便,只需要安装一下squid,一条命令搞定 yum install squid rpm -qa | grep squid squid-- ...
- nginx用户认证配置( Basic HTTP authentication)
ngx_http_auth_basic_module模块实现让访问着,只有输入正确的用户密码才允许访问web内容.web上的一些内容不想被其他人知道,但是又想让部分人看到.nginx的http aut ...
- Nginx用户认证配置方法详解(域名/目录)
Nginx超级强大它可以单独为一个域名设置用户认证,方法也很简单我们只要生成用户认证的用户名和密码,然后再Nginx添加auth认证配置即可 Nginx可以为某一个域名单独加用户认证,具体做法如下: ...
- 转:Mosquitto用户认证配置
转自:https://blog.csdn.net/u012377333/article/details/69397124?utm_source=blogxgwz1 前言:基于Mosquitto服务器已 ...
- Apache配置 2.用户认证
1.用户认证用来对某些目录中的网页进行访问控制,当用户访问这些页面的时候需要输入用户名和密码进行认证. 2. 配置: # vim /usr/local/apache2.4/conf/extra/htt ...
- nginx用户认证配置( Basic HTTP authentication)及认证原理和实现
https://blog.csdn.net/guyue35/article/details/53906843
- 几个有用的SAP安全配置的用户参数配置列表
转自http://blog.sina.com.cn/s/blog_4f913cf80100mksj.html Parameter Brief Description login/min_passwor ...
随机推荐
- 设置VisualSVN在提交修改时必须输入一定数量的备注信息
我发现在使用SVN中,提交时,很多人不习惯填写备注信息,虽然在培训中.平时使用时多次提醒备注信息的好处,但是效果不大,每次提交时还是不写,或者随便写两字. 所以很有必要通过系统设置强制填写足够数量的备 ...
- 使用第三方工具Cornerstone搭建本地SVNserver
一.加入版本号资源库 点击Cornerstone左下角REPOSITORIES栏右边的加号button.在弹出的视图中选择File Repository,然后选择Create a New Reposi ...
- linux应用网址
APUE学习:(十三) [终篇] 一起学 Unix 环境高级编程 (APUE) 之 网络 IPC:套接字 linux应用学习笔记(已列目录供跳转):http://www.cnblogs.com/ggj ...
- docker-maven-plugin
顾名思义,docker-maven-plugin是一个docker的maven插件,用来执行docker镜像的制作和上传,他的地址是https://github.com/spotify/docker- ...
- 设计模式之前之UML
UML,让系统可视化,让规格和设计文档化的表现方法.下面来简单介绍一下这个UML.
- react-native create-react-app创建项目报错SyntaxError: Unexpected end of JSON input while parsing near '...ttachment":false,"tar' npm代理
SyntaxError: Unexpected end of JSON input while parsing near '...ttachment":false,"tar' 错误 ...
- python入门课程 第3章 Python变量和数据类型
第3章 Python变量和数据类型3-1 Python中数据类型计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形 ...
- php单元测试标注(注解)
@after 用于指明此方法应当在测试用例类中的每个测试方法运行完成之后调用. /** * @before1 */ public function bbb() { $this->assertTr ...
- 3354 [IOI2005]河流
题目描述 几乎整个Byteland王国都被森林和河流所覆盖.小点的河汇聚到一起,形成了稍大点的河.就这样,所有的河水都汇聚并流进了一条大河,最后这条大河流进了大海.这条大河的入海口处有一个村庄——名叫 ...
- WinForm开发----关闭window窗体最好的办法
最近有一人问道,如何切换窗体.一想到这,我就想,不就是new一个form,然后就show么? 可是我发现,当你控制某个属性的时候,不是不能控制,只是很麻烦而已.有没有好的办法?当然有,咋办? 最简单最 ...