什么是Nginx的rewrite?

实现URL地址重写,比较复杂的write需要开发来完成,伪静态处理实现是开发的工作,

这rewrite写在location中

指令语法:    rewrite regex relplacement[flag]

rewrite ^/(.*) http://www.yunhello.cn/$1 permanet

rewrite   # 固定关键字,开启正则匹配规则, $1 表示前面()内匹配的内容

     regex 部分是 ^/(.*) 这个是正则表达式,匹配所有,匹配成功后跳转到http://www.yunhello.cn/$1, $1 是前面正则括号内匹配到的内容

     permanet      永久重定向标记,即永久跳转到后面的 http://www.yunhello.cn/$1 地址上,也就是跳转到这个url中,又重新通过Nginx进行匹配

server {
listen 80;
server_name bbs.yunhello.cn;
location / {
rewrite ^/(.*)http://www.yunhello.cn/$1 permanet;
}
}
# 这个rewrite是跳转到新的站点上

除了 permanet 标记后,还有哪些?

redirect         302 临时重定向

permanet      301 永久重定向

last                本次规则匹配完,继续向下匹配location

break            本次规则匹配完,不在向下匹配

Nginx Rewrite的企业应用场景

必须使用到

  1. 可以调整用户浏览器的URL,看起来更规范,合乎开发和产品人员的需求
  2. 让搜索引擎收录和更好的用户体验,伪静态或纯静态
  3. 网站换了域名后,让旧的域名的访问跳转到新的域名上,让京东的360buy换成jd.com

Nginx访问认证

企业内部人员使用,企业后台,mysql客户端phpmyadmin,企业内部CRM,WIKI等网站平台

放到 location中或者放到server中

auth_basic           提示

auth_basic_user_file  默认值 - , 接密码认证文件,和rsync客户端密码文件格式一样

站点后台:

server {
listen 80;
server_name manage.etiantian.org;
location / {
auth_basic "hahaha"
auth_basic_user_file conf/htpassd
}
} # 密码文件: conf/htpassd name1:passwd1:comment # 用户名:密码:说明,这里密码是加密的,不能人工修改,通过apache的htpasswd命令创建 htpasswd -cb /application/nginx/conf/htpasswd user password # 创建用户和密码,指定存放文件,-c 指定文件, -b非交互式

这个rewrite功能是什么呢,具体体现方向是什么?

重写url 和完成域名跳转

具体方向是浏览器中网站地址框更好看了,也就是说只是更改了url显示,还有跳转的时候,先显示原url再显示跳转到URL

403错误出现的原因:

没有首页,或没有读这个文件的权限

linux_nginx_rewrite的更多相关文章

随机推荐

  1. 使用FormatMessage函数编写一个内核错误码查看器

    在编写驱动程序的时候,常用的一个结构是NTSTATUS,它来表示操作是否成功,但是对于失败的情况它的返回码过多,不可能记住所有的情况,应用层有一个GetLastError函数,根据这个函数的返回值可以 ...

  2. 深入设计电子计算器(一)——CPU指令集设计

    版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖.如要转贴,必须注明原文网址 http://www.cnblogs.com/Colin-Cai/p/8254096.html 作者:窗户 Q ...

  3. 迭代器中next()的用法

    >>> g = (x ** 2 for x in range(10)) >>> next(g) 0 >>> next(g) 1 >>& ...

  4. my discipline life

    周一  ~   周五 7.30 ---  8.00 起床,洗漱等 8.00 ---  8.30 默写8-10个英语单词 8.35 ---  9.10 吃早餐,骑自行车去公司 12.20  ---  1 ...

  5. orm查询

    all:models.表名.objects.all() 结果是queryset集合 filter: models.表名.objects.filter() 结果是queryset集合 get: mode ...

  6. 如何给网站添加SSL证书(免费)

    上篇讲了如何将网站部署到服务器上,这篇就讲如何给网站添加SSL证书. 1.先到腾讯云ssl证书认证那里申请一个证书 2.DNS认证 3.下载解压nginx里面的文件 4. 在服务器上/www目录下创建 ...

  7. HDU 2066 最短路floyd算法+优化

    http://acm.hdu.edu.cn/showproblem.php?pid=206 题意 从任意一个邻居家出发 到达任意一个终点的 最小距离 解析 求多源最短路 我想到的是Floyd算法 但是 ...

  8. flume1.8 Channel类型介绍(四)

    1. Flume Channel Channels是events在agent上进行的存储库.Source添加events,Sink移除events. 1.1 Memory Channel(内存Chan ...

  9. Spring配置集群定时任务

    正常配置定时任务的时候配置定时任务调度工厂的代码如下 <bean id="" class="org.springframework.scheduling.quart ...

  10. i++是否原子操作?并解释为什么?

    都不是原子操作.理由: 1.i++分为三个阶段: 内存到寄存器寄存器自增写回内存这三个阶段中间都可以被中断分离开.  2.++i首先要看编译器是怎么编译的, 某些编译器比如VC在非优化版本中会编译为以 ...