详解常用的nginx重写重写规则

  

本文提供一些常用的重写重写规则,用来美化网页的链接。规则里面的$ 1 $ 2你不知道是怎么来的话,只要记住,第一个()里面的是1美元,第二个()里面的是2美元。
  

  

请求的URL是给人看的,重写后的URL是给电脑看的。

  

<>强执行搜索

  

这个规则的目的是为了执行搜索,搜索URL中包含的关键字。

  

请求的URL //hqidi.com/search/some-search-keywords
  重写后URL //hqidi.com/search.php& # 63; p=some-search-keywords
  重写规则,,,,,,,,重写^/搜索/(. *)$/search.php& # 63; p=1 & # 63;美元;

  

<强>用户个人资料页面

  

大多数运行访问者注册的动态网站都提供一个可以查看个人资料的页面,这个页面的URL包含用户的UID和用户名

  

请求的URL //hqidi.com/user/47/dige
  重写后URL //hqidi.com/user.php& # 63; id=47, name=消化
  重写规则,,,,,,,,重写^/user/([0 - 9] +)/(+)/美元user.php& # 63; id=1美元,2=$ & # 63;名称;

  

<强>多个参数

  

有些网站对字符串参数使用不同的语法,例如通过斜线“/崩捶指舴敲问?/p>   

请求的URL //hqidi.com/index.php/param1/param2/param3
  重写后URL //hqidi.com/index.php& # 63; p1=param1& p2=param2& p3=param3
  重写规则,,,,,,,,重写^/index . php/(. *)/(. *)/(. *)/index . php # 63美元;p1=1美元,p2=2美元,p3=& # 63; 3美元;

  

<强>类似百科的格式

  

这种格式特点,一个前缀目录,后跟文章名称

  

请求的URL //hqidi.com/wiki/some-keywords
  重写后URL //hqidi.com/wiki/index.php& # 63; title=一些关键字
  重写规则,,,,,,,,重写^/wiki/(. *)/wiki/index . php # 63美元;标题=& # 63;1美元;

  

<强>论坛

  

论坛一般用到两个参数,一个话题标识(主题)一个出发点(出发点)

  

请求的URL //hqidi.com/topic - 1234 - 50 -一些keywords.html
  重写后URL //hqidi.com/viewtopic.php& # 63;主题=1234,开始=50
  重写规则,,,,,,,,重写^/主题- ([0 - 9]+)([0 - 9]+)- (. *)\。html viewtopic.php& # 63美元;主题=1美元,2=$ & # 63;开始;

  

<强>新网站的文章

  

这种URL结构的特点,由一个文章标识符,后跟一个斜线,和一个关键字列表组成。

  

请求的URL //hqidi.com/88/future
  重写后URL //hqidi.com/atricle.php& # 63; id=88
  重写规则,,,,,,,,重写^/([0 - 9]+)/? $/aticle.php& # 63; id=1 & # 63;美元;

  

<强>最后一个问号

  

若被替换的URI中含有参数(类似/app/test.php& # 63; id=5之类的URI),默认情况下参数会被自动附加到替换串上,可以通过在替换串的末尾加上& # 63;标记来解决这一问题。

  

重写^/用户/(. *)/显示# 63美元;用户1=$ & # 63;最后,

  

比较一个加上?标记和不加?标记的网址跳转区别:

  

重写^/测试(. *)$//hqidi.com/home水平;

  

访问//hqidi.com/test& # 63; id=5经过301跳转后的URL地址为//hqidi.com/home& # 63; id=5

  

重写^/测试(. *)/美元/hqidi.com/home& # 63;

水平;   

访问//hqidi.com/test& # 63; id=5经过301跳转后的URL地址为//hqidi.com/home

  

Nginx的重写功能需要PCRE软件的支持,即通过perl兼容正则表达式语句进行规则匹配的。默认参数编译Nginx就会支持重写的模块,但是也必须要PCRE的支持

  

重写是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到替换,结尾是国旗标记。

  

  

1。执行服务器块的重写指令(这里的块指的是服务器关键字后{}包围的区域,其它xx块类似)
  2.执行位置匹配
  3.执行选定的位置中的重写指令
  

  

如果其中某步URI被重写,则重新循环执行1 - 3,直到找到真实存在的文件。

  

如果循环超过10次,则返回500内部服务器错误错误。

  

国旗标志位

  

重写的语法很简单,如:

        URL重写正则表达式[标记];      

重写是关键字,正则表达式是正则表达式,URL是要替代的内容,[标记]是标记位的意思,它有以下几种值:

  
      <李>:相当于Apache的[L]标记,表示完成重写李   <李>打破:停止执行当前虚拟主机的后续重写指令集   <李>重定向:返回302临时重定,向地址栏会显示跳转后的地址李   <李>永久:返回301年永久重定,向地址栏会显示跳转后的地址李   

    详解常用的nginx重写重写规则