亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網(wǎng)站 > Nginx > 正文

詳解常用的nginx rewrite重寫規(guī)則

2024-08-30 12:30:17
字體:
供稿:網(wǎng)友

本文提供一些常用的rewrite重寫規(guī)則,用來美化網(wǎng)頁的鏈接。規(guī)則里面的$1$2你不知道是怎么來的話,只要記住,第一個(gè)()里面的是$1,第二個(gè)()里面的是$2.

請(qǐng)求的URL是給人看的,重寫后的URL是給電腦看的。

執(zhí)行搜索

這個(gè)規(guī)則的目的是為了執(zhí)行搜索,搜索URL中包含的關(guān)鍵字。

請(qǐng)求的URL //hqidi.com/search/some-search-keywords
重寫后URL //hqidi.com/search.php?p=some-search-keywords
重寫規(guī)則         rewrite ^/search/(.*)$ /search.php?p=$1?;

用戶個(gè)人資料頁面

大多數(shù)運(yùn)行訪問者注冊(cè)的動(dòng)態(tài)網(wǎng)站都提供一個(gè)可以查看個(gè)人資料的頁面,這個(gè)頁面的URL包含用戶的UID和用戶名

請(qǐng)求的URL //hqidi.com/user/47/dige
重寫后URL //hqidi.com/user.php?id=47&name=dige
重寫規(guī)則         rewrite ^/user/([0-9]+)/(.+)$ /user.php?id=$1&name=$2?;

多個(gè)參數(shù)

有些網(wǎng)站對(duì)字符串參數(shù)使用不同的語法,例如 通過斜線“/”來分隔非命名參數(shù)

請(qǐng)求的URL //hqidi.com/index.php/param1/param2/param3
重寫后URL //hqidi.com/index.php?p1=param1&p2=param2&p3=param3
重寫規(guī)則         rewrite ^/index.php/(.*)/(.*)/(.*)$ /index.php?p1=$1&p2=$2&p3=$3?;

類似百科的格式

這種格式特點(diǎn),一個(gè)前綴目錄,后跟文章名稱

請(qǐng)求的URL //hqidi.com/wiki/some-keywords
重寫后URL //hqidi.com/wiki/index.php?title=some-keywords
重寫規(guī)則         rewrite ^/wiki/(.*)$ /wiki/index.php?title=$1?;

論壇

論壇一般用到兩個(gè)參數(shù),一個(gè)話題標(biāo)識(shí)(topic)一個(gè)出發(fā)點(diǎn)(starting post)

請(qǐng)求的URL //hqidi.com/topic-1234-50-some-keywords.html
重寫后URL //hqidi.com/viewtopic.php?topic=1234&start=50
重寫規(guī)則         rewrite ^/topic-([0-9]+)-([0-9]+)-(.*)/.html$ viewtopic.php?topic=$1&start=$2?;

新網(wǎng)站的文章

這種URL結(jié)構(gòu)的特點(diǎn),由一個(gè)文章標(biāo)識(shí)符,后跟一個(gè)斜線,和一個(gè)關(guān)鍵字列表組成。

請(qǐng)求的URL //hqidi.com/88/future
重寫后URL //hqidi.com/atricle.php?id=88
重寫規(guī)則         rewrite ^/([0-9]+)/.*$ /aticle.php?id=$1?;

最后一個(gè)問號(hào)

若被替換的URI中含有參數(shù)(類似/app/test.php?id=5之類的URI),默認(rèn)情況下參數(shù)會(huì)被自動(dòng)附加到替換串上,可以通過在替換串的末尾加上?標(biāo)記來解決這一問題。

rewrite ^/users/(.*)$ /show?user=$1? last;

比較一個(gè)加上?標(biāo)記和不加?標(biāo)記的URL跳轉(zhuǎn)區(qū)別:

rewrite ^/test(.*)$ //hqidi.com/home premanent;

訪問//hqidi.com/test?id=5 經(jīng)過301跳轉(zhuǎn)后的URL地址為 //hqidi.com/home?id=5

rewrite ^/test(.*)$ //hqidi.com/home? premanent;

訪問//hqidi.com/test?id=5 經(jīng)過301跳轉(zhuǎn)后的URL地址為 //hqidi.com/home

Nginx的rewrite功能需要PCRE軟件的支持,即通過perl兼容正則表達(dá)式語句進(jìn)行規(guī)則匹配的。默認(rèn)參數(shù)編譯nginx就會(huì)支持rewrite的模塊,但是也必須要PCRE的支持

rewrite是實(shí)現(xiàn)URL重寫的關(guān)鍵指令,根據(jù)regex(正則表達(dá)式)部分內(nèi)容,重定向到replacement,結(jié)尾是flag標(biāo)記。

nginx rewrite指令執(zhí)行順序

1.執(zhí)行server塊的rewrite指令(這里的塊指的是server關(guān)鍵字后{}包圍的區(qū)域,其它xx塊類似)
2.執(zhí)行l(wèi)ocation匹配
3.執(zhí)行選定的location中的rewrite指令

如果其中某步URI被重寫,則重新循環(huán)執(zhí)行1-3,直到找到真實(shí)存在的文件。

如果循環(huán)超過10次,則返回500 Internal Server Error錯(cuò)誤。

flag標(biāo)志位

rewrite的語法很簡單,如:

rewrite regex URL [flag];

rewrite是關(guān)鍵字,regex是正則表達(dá)式,URL是要替代的內(nèi)容,[flag]是標(biāo)記位的意思,它有以下幾種值:

  • last: 相當(dāng)于Apache的[L]標(biāo)記,表示完成rewrite
  • break: 停止執(zhí)行當(dāng)前虛擬主機(jī)的后續(xù)rewrite指令集
  • redirect: 返回302臨時(shí)重定向,地址欄會(huì)顯示跳轉(zhuǎn)后的地址
  • permanent: 返回301永久重定向,地址欄會(huì)顯示跳轉(zhuǎn)后的地址

因?yàn)?01和302不能簡單的只返回狀態(tài)碼,還必須有重定向的URL,這就是return指令無法返回301,302的原因了。這里 last 和 break 區(qū)別有點(diǎn)難以理解:

  • last一般寫在server和if中,而break一般使用在location中
  • last不終止重寫后的url匹配,即新的url會(huì)再從server走一遍匹配流程,而break終止重寫后的匹配
  • break和last都能組織繼續(xù)執(zhí)行后面的rewrite指令

來看一個(gè)簡單實(shí)例:

rewrite ^/listings/(.*)$ /listing.html?listing=$1 last;rewrite ^/images/(.*)_(/d+)x(/d+)/.(png|jpg|gif)$ /resizer/$1.$4?width=$2&height=$3? last;

第一條重寫規(guī)則中,我們可以使用友好的URL:http://mysite.com/listings/123代替http://mysite.com/listing.html?listing=123,就相當(dāng)于我們?cè)跒g覽器的地址欄中輸入http://mysite.com/listings/123后,實(shí)際訪問的URL資源是http://mysite.com/listing.html?listing=123。

第二條規(guī)則中,對(duì)形如http://mysite.com/images/bla_500x400.jpg的文件請(qǐng)求,重寫到http://mysite.com/resizer/bla.jpg?width=500&height=400地址,并會(huì)繼續(xù)嘗試匹配location。

if指令與全局變量

if指令語法為if(condition){...},對(duì)給定的條件condition進(jìn)行判斷。如果為真,大括號(hào)內(nèi)的rewrite指令將被執(zhí)行。

來看代碼規(guī)則:

if ($http_user_agent ~ MSIE) {  rewrite ^(.*)$ /msie/$1 break;} //如果UA包含"MSIE",rewrite請(qǐng)求到/msid/目錄下 if ($http_cookie ~* "id=([^;]+)(?:;|$)") {  set $id $1; } //如果cookie匹配正則,設(shè)置變量$id等于正則引用部分 if ($request_method = POST) {  return 405;} //如果提交方法為POST,則返回狀態(tài)405(Method not allowed)。return不能返回301,302 if ($slow) {  limit_rate 10k;} //限速,$slow可以通過 set 指令設(shè)置 if (!-f $request_filename){  break;  proxy_pass http://127.0.0.1; } //如果請(qǐng)求的文件名不存在,則反向代理到localhost 。這里的break也是停止rewrite檢查 if ($args ~ post=140){  rewrite ^ http://mysite.com/ permanent;} //如果query string中包含"post=140",永久重定向到mysite.com

if指令中,可以使用全局變量,這些變量有:

  • $args: #這個(gè)變量等于請(qǐng)求行中的參數(shù),同$query_string
  • $content_length: 請(qǐng)求頭中的Content-length字段。
  • $content_type: 請(qǐng)求頭中的Content-Type字段。
  • $document_root: 當(dāng)前請(qǐng)求在root指令中指定的值。
  • $host: 請(qǐng)求主機(jī)頭字段,否則為服務(wù)器名稱。
  • $http_user_agent: 客戶端agent信息
  • $http_cookie: 客戶端cookie信息
  • $limit_rate: 這個(gè)變量可以限制連接速率。
  • $request_method: 客戶端請(qǐng)求的動(dòng)作,通常為GET或POST。
  • $remote_addr: 客戶端的IP地址。
  • $remote_port: 客戶端的端口。
  • $remote_user: 已經(jīng)經(jīng)過Auth Basic Module驗(yàn)證的用戶名。
  • $request_filename: 當(dāng)前請(qǐng)求的文件路徑,由root或alias指令與URI請(qǐng)求生成。
  • $scheme: HTTP協(xié)議(如http,https)。
  • $server_protocol: 請(qǐng)求使用的協(xié)議,通常是HTTP/1.0或HTTP/1.1。
  • $server_addr: 服務(wù)器地址,在完成一次系統(tǒng)調(diào)用后可以確定這個(gè)值。
  • $server_name: 服務(wù)器名稱。
  • $server_port: 請(qǐng)求到達(dá)服務(wù)器的端口號(hào)。
  • $request_uri: 包含請(qǐng)求參數(shù)的原始URI,不包含主機(jī)名,如:”/foo/bar.php?arg=baz”。
  • $uri: 不帶請(qǐng)求參數(shù)的當(dāng)前URI,$uri不包含主機(jī)名,如”/foo/bar.html”。
  • $document_uri: 與$uri相同。

使用return跳轉(zhuǎn)

我們有時(shí)需要在Nginx上使用rewrite做301地址跳轉(zhuǎn),比如以下規(guī)則:

rewrite ^ $scheme://www.mysite.com$request_uri permanent;

當(dāng)訪問任意url都會(huì)301永久定向到www.mysite.com的url上。這個(gè)寫法沒錯(cuò),但是因?yàn)槭褂昧藃ewrite的正則匹配,會(huì)損耗一部分資源,nginx官網(wǎng)不推薦這樣寫。我們可以使用return同樣可以實(shí)現(xiàn)301跳轉(zhuǎn),簡單實(shí)用,看實(shí)例:

301永久定向到新域名

server {  listen 80;  listen 443 ssl;  server_name www.old-name.com old-name.com;  return 301 $scheme://www.new-name.com;}

以上代碼實(shí)現(xiàn)了老域名301跳轉(zhuǎn)到新域名上,假如網(wǎng)站要更換新域名的話使用此方法做301跳轉(zhuǎn)。

不帶www的域名301跳轉(zhuǎn)到帶www的域名

server {  listen 80;  listen 443 ssl;  server_name mysite.com;  return 301 $scheme://www.mysite.com$request_uri;}

http站點(diǎn)301跳轉(zhuǎn)到https站點(diǎn)

server {  listen 80;  server_name www.mysite.com;  return 301 https://www.mysite.com$request_uri;}

以上就是有關(guān)Nginx的rewrite重寫與重定向的介紹,覺得有用就請(qǐng)練習(xí)多遍,收藏好此文不迷路。也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到服務(wù)器教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
亚洲精品二三区| 日韩欧美一区二区三区不卡视频| 视频一区国产| 亚州av在线播放| 久久精品色妇熟妇丰满人妻| 美女午夜精品| 91色婷婷久久久久合中文| 日本视频在线观看免费| 黄色激情网址| 日本精品久久久| 中日韩午夜理伦电影免费| 99国产精品久久久久久久成人热| 日韩精品日韩在线观看| 羞羞视频网页| 国产女主播在线直播| 福利在线视频导航| 国产一区二区三区四区五区在线| 欧美中日韩免费视频| 91在线视频官网| 年下总裁被打光屁股sp| 无码人妻aⅴ一区二区三区玉蒲团| 免费国产自久久久久三四区久久| 色婷婷亚洲综合| av手机免费观看| 国产精品久久久久久久久久久久久久久久久| 日韩国产在线观看一区| 黄页网站在线看| 国产精品19p| 高潮一区二区三区乱码| 少妇一级淫片免费放中国| 亚洲网站情趣视频| 全亚洲第一av番号网站| 欧美激情第一区| 亚洲一区欧美在线| 欧美福利在线观看| 这里精品视频免费| 蜜臀av性久久久久蜜臀aⅴ| 一区二区三区在线视频观看58| 伊人伊成久久人综合网站| 国产 日韩 欧美 在线| 天使と恶魔の榨精在线播放| 欧美日韩三级| 亚洲色图 校园春色| 国产suv精品一区二区三区| 国产精品国产福利国产秒拍| 精品久久中文字幕| 日本伊人精品一区二区三区介绍| 日本在线播放一区| 北条麻妃在线一区| 97一区二区国产好的精华液| 久久在线电影| 波多野结衣不卡视频| 国产一区二区免费视频| 香港三级日本三级| 国产鲁鲁视频在线观看特色| 天天综合中文字幕| 久久精品国产久精国产思思| 国产亚洲午夜高清国产拍精品| 91久久国产综合久久91| 成人av在线不卡| 一个色综合网站| 91丨九色丨国产| 国产91对白在线观看九色| 日韩精品视频在线观看一区二区三区| 日韩三区在线观看| 国语对白在线视频| 亚洲精品二区三区| 男人揉女人奶房视频60分| 久久免费精品日本久久中文字幕| 久久艹中文字幕| 国产91丝袜在线播放0| 天天干天天操天天操| 天堂中文在线官网| 韩日一区二区| 国产精品亚洲自拍| www.com操| 国产超级va在线视频| 久久久久久午夜| 日韩最新av| 国产在线免费视频| 中文字幕丰满乱子伦无码专区| 婷婷免费在线视频| 国产在线视频网| 成人全视频在线观看在线播放高清| 91久久精品国产91久久性色tv| 18精品爽国产三级网站| 99久久久无码国产精品| 亚洲五码在线| 欧美深深色噜噜狠狠yyy| 日本一区网站| 尤物一区二区三区| 国产做a爰片久久毛片| 亚洲色图久久久| 伊人在线视频| 99精品全国免费观看| 色av中文字幕一区| 亚洲午夜视频在线观看| 热久久一区二区| 欧美成人另类视频| 国产8mav视频| 日韩少妇一区二区| 欧美优质美女网站| 亚洲欧美小视频| 蜜桃特黄a∨片免费观看| 在线看小视频| 欧美日韩国产一二三区| 综合网插菊花| 欧美老女人性开放| 精品国产福利视频| 国产男人搡女人免费视频| 成人黄色av播放免费| 久草青青在线观看| 一区二区日韩电影| 自拍偷拍福利视频| 国产精品老牛影院在线观看| 午夜剧场成人观在线视频免费观看| 亚洲www在线| 欧美极品xxx| 亚洲成人一区在线| 色成年激情久久综合| 久久亚洲影视| 日本免费三片免费观看| 国产风韵犹存在线视精品| 欧美极品jizzhd欧美仙踪林| 亚洲国产精品免费| 亚洲综合色丁香婷婷六月图片| 日韩一区二区三区免费视频| 五月婷在线视频| 污污的网站在线免费观看| 偷窥自拍亚洲色图精选| 欲香欲色天天天综合和网| 国产黄色小视频在线观看| 精品国产凹凸成av人网站| 久久一区二区三区超碰国产精品| 激情视频在线观看一区二区三区| 国产精品久久精品视| 国产特级淫片高清视频| 久久久国产高清| 国产91精品久久久久久| 亚洲精品麻豆| 精品在线一区二区三区| 日韩毛片免费观看| 尤物在线视频| 91伦理视频在线观看| 成人疯狂猛交xxx| 日本暖暖在线视频| 国产suv精品一区二区33| 成人在线免费高清视频| 好吊视频一二三区| 亚洲美免无码中文字幕在线| 91麻豆精品国产91久久久久久久久| 亚洲AV成人精品| 羞羞视频在线观看一区二区| 在线免费色视频| 亚洲一区二区三区四区的| 欧美精品人人做人人爱视频| 亚洲国产精品久久久久蝴蝶传媒| 免费人成自慰网站| 日韩精品一区二区三区第95| xxxxxwwww免费视频| 欧美一乱一性一交一视频| 九七午夜视频| 欧美性高潮床叫视频| 国产精品久久久久婷婷二区次| 懂色aⅴ精品一区二区三区| 日本一区二区三区四区五区六区| 欧州一区二区| 亚洲一区二区中文字幕在线观看| 精品一二三区| 欧美日韩综合在线| 国内久久久精品| 国产日产欧产精品推荐色| 韩国三级在线看| 在线免费精品视频| 中国xxxx视频播放50| 国产精品suv一区二区三区| 日本黄色成人| 美国欧美日韩国产在线播放| 欧美成人a在线| 国产原创一区二区| 亚洲国产综合久久| 午夜精品一区二区三区在线视| 男女作爱免费网站| 三大队在线观看| 欧美另类极限扩张| 天天躁夜夜躁狠狠是什么心态| 日本一区二区成人| 国产精品主播在线观看| 日韩中文字幕有码| av电影在线播放高清免费观看| 成人盗摄视频| 国产免费一区二区三区香蕉精| 亚洲人永久免费| 国内外成人免费激情在线视频网站| 黄色一级大片免费| 亚洲网址在线观看| 一女三黑人理论片在线| 91在线第一页| 黄色网址多少| 欧美另类交视频| 精品美女在线观看视频在线观看| 91玉足脚交白嫩脚丫| 特种兵之深入敌后| 亚洲精品国产精华液| 成人在线观看免费网站| 粉嫩aⅴ一区二区三区| **欧美日韩在线观看| 欧美黄网站在线观看| 国产一级二级在线| 国产av无码专区亚洲精品| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美成人一区二区在线观看| а√资源新版在线天堂| 岛国成人毛片| 91精品欧美一区二区三区综合在| 欧美另类高清视频在线| 日韩在线观看免费| 日本精品一区在线观看| 国产精品久久AV无码| 日本在线视频中文有码| 第一社区sis001原创亚洲| 91.com视频| 国产一区二区三区不卡在线| 视频在线日韩| 2021年精品国产福利在线| 日韩免费观看网站| 欧美在线xxxx| 暖暖影院日本高清...免费| 欧美交换配乱吟粗大25p| 欧美激情喷水视频| 欧美亚州韩日在线看免费版国语版| 色又黄又爽网站www久久| 免费成人在线观看视频| 精品96久久久久久中文字幕无| 国产精品国产一区二区三区四区| 菠萝蜜网站在线观看| 5858p先锋影音资源网| 国产青青在线视频| 最新国产成人在线观看| 欧美视频1区| 国产日韩欧美在线播放不卡| 精品国产乱码久久久久久图片| 91丨porny丨最新| 欧美视频在线免费| 成人在线免费在线观看| 久久精品久久精品| 中日韩av在线| 亚洲黄色成人久久久| 亚洲午夜激情免费视频| 国产成人精品一区二区三区网站观看| 精品久久视频| 久久久国际精品| 久草视频在线看| 精品久久久av| 欧美一区二区私人影院日本| 成人动漫视频在线| 中文字幕亚洲情99在线| 久久综合网导航| 欧美日韩亚洲一二三| 国产精品成人免费精品自在线观看| 欧美亚洲不卡| 亚州黄色一级| 免费操人视频| 日韩网站在线免费观看| 欧美黑人极品猛少妇色xxxxx| 久久久久久久久久婷婷| 亚洲精品看片| 欧美一级免费片| 日韩成人精品| 日本亚洲一区二区三区| 久草视频免费播放| 久久99精品久久久久久久久久久久| 污视频免费在线观看| 亚洲妇女无套内射精| 四虎成人免费观看在线网址| 欧美在线xxxx| 性欧美精品一区二区三区在线播放| 国产成人一二片| 天天干天天综合| 亚洲欧美国产精品va在线观看| 免费观看国产视频在线| 麻豆精品一区二区| 精品999久久久| 一区二区三区入口| 欧美一级久久久| 国产日韩在线免费观看| 99reav2| 欧美精品三级在线观看| 91精品国产91久久久久麻豆 主演| 久久久久久久久久成人| 欧美日本精品在线| 婷婷中文字幕在线观看| 国产精品嫩草影院桃色| 欧美高清精品一区二区| 日本wwwcom| 日韩精品无码一区二区三区免费| www.4hu95.com四虎| 天天爽夜夜爽夜夜爽精品视频| 风间由美性色一区二区三区| 男人的天堂av社区在线| 精品乱子伦一区二区三区| 日韩精品欧美一区二区三区| 四虎影视最新网址| 欧美日韩中文字幕一区二区| 特黄毛片在线观看| 国产精品一区二区资源| 免费人成年激情视频在线观看| 无套内谢丰满少妇中文字幕| 噼里啪啦国语在线观看免费版高清版| 欧美视频国产视频| 色婷婷国产精品久久包臀| www.av在线.com| 青青草国产精品一区二区| 久久大大胆人体| 久久久精品久久久久特色影视| 亚洲综合图片区| 在线观看亚洲一区二区| 中文字幕第31页| 大胆人体一区| 肉丝美足丝袜一区二区三区四| 全亚洲第一av番号网站| 久草网站在线观看| 精品一区在线| 91美女主播在线视频| 一区二区三区伦理片| 精品久久久av| 精品无人区麻豆乱码久久久| 国产精品小说在线|