日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

rewirte 规则

發(fā)布時(shí)間:2025/7/14 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rewirte 规则 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Nginx Rewrite ?

? Rewirte 規(guī)則也稱為規(guī)則重寫,主要功能是實(shí)現(xiàn)瀏覽器訪問(wèn)?HTTP URL 的跳轉(zhuǎn),其正則

表達(dá)式是基于 Perl?語(yǔ)言。通常而言,幾乎所有的 WEB?服務(wù)器均可以支持 URL?重寫。Rewrite

URL 規(guī)則重寫的用途:

對(duì)搜索引擎優(yōu)化(Search Engine Optimization,SEO)友好,利于搜索引擎抓取網(wǎng)站頁(yè)面;

? 隱藏網(wǎng)站 URL?真實(shí)地址,瀏覽器顯示更加美觀;

? 網(wǎng)站變更升級(jí),可以基于 Rewrite?臨時(shí)重定向到其他頁(yè)面。

? Nginx Rewrite 規(guī)則使用中有三個(gè)概念需要理解,分別是:Rewrite 結(jié)尾標(biāo)識(shí)符、Rewrite

規(guī)則常用表達(dá)式、Nginx Rewrite?變量,如下為三個(gè)概念的詳解:

(1) Nginx Rewrite 結(jié)尾標(biāo)識(shí)符,用于?Rewrite 規(guī)則末尾,表示規(guī)則的執(zhí)行屬性。

last ?:相當(dāng)于?Apache 里的(L)標(biāo)記,表示完成?rewrite 匹配;

break:本條規(guī)則匹配完成后,終止匹配,不再匹配后面的規(guī)則。

redirect:返回?302 臨時(shí)重定向,瀏覽器地址會(huì)顯示跳轉(zhuǎn)后的?URL 地址。

permanent:返回?301 永久重定向,瀏覽器地址欄會(huì)顯示跳轉(zhuǎn)后的?URL 地址。

其中 last?和 break?用來(lái)實(shí)現(xiàn) URL?重寫時(shí),瀏覽器地址欄 URL?地址不變。

2) Nginx Rewrite 規(guī)則常用表達(dá)式,主要用于匹配參數(shù)、字符串及過(guò)濾設(shè)置。

?

.

?

匹配任何單字符;

[word]

?

匹配字符串:word;

[^word]

?

不匹配字符串:word;

jfedu|jfteach

可選擇的字符串:jfedu|jfteach;

?

?

匹配 0?到 1?個(gè)字符;

*

?

匹配 0?到多個(gè)字符;

+

?

匹配 1?到多個(gè)字符;

^

?

字符串開(kāi)始標(biāo)志;

$

?

字符串結(jié)束標(biāo)志;

\n

?

轉(zhuǎn)義符標(biāo)志。

?

?

(3)

Nginx Rewrite 變量,常用于匹配?HTTP 請(qǐng)求頭信息、瀏覽器主機(jī)名、URL 等。

?

HTTP headers:HTTP_USER_AGENT, HTTP_REFERER, HTTP_COOKIE, HTTP_HOST,

?

HTTP_ACCEPT;

connection & request: REMOTE_ADDR, QUERY_STRING;

server internals: DOCUMENT_ROOT, SERVER_PORT, SERVER_PROTOCOL;

system stuff: TIME_YEAR, TIME_MON, TIME_DAY。

詳解如下:

HTTP_USER_AGENT 用戶使用的代理,例如瀏覽器;

HTTP_REFERER 告知服務(wù)器,從哪個(gè)頁(yè)面來(lái)訪問(wèn)的;

HTTP_COOKIE 客戶端緩存,主要用于存儲(chǔ)用戶名和密碼等信息;

HTTP_HOST 匹配服務(wù)器 ServerName?域名;

HTTP_ACCEPT 客戶端的瀏覽器支持的 MIME?類型;

REMOTE_ADDR 客戶端的 IP?地址

QUERY_STRING URL 中訪問(wèn)的字符串;

DOCUMENT_ROOT 服務(wù)器發(fā)布目錄;

SERVER_PORT 服務(wù)器端口;

SERVER_PROTOCOL 服務(wù)器端協(xié)議;

TIME_YEAR 年;

?

TIME_MON

月;

TIME_DAY

日;

?

?

(4)

Nginx ?Rewrite ?以下配置均配置在?nginx.conf 或者?vhosts.conf ?中,企業(yè)中常用的

?

Nginx Rewrite 案例如下:

1. 將 baidu.com?跳轉(zhuǎn)至?ww.baidu.com。

if ($host = 'jfedu.net' ) {

rewrite ^/(.*)$ ww.baidu.com?permanent;

}

?

  • 訪問(wèn)?www.baidu.com跳轉(zhuǎn) new_index.html。
  • ?

    rewrite ^/$ http://www.baidu.com/new_index.html permanent;

    ?

       2.訪問(wèn)/baidu/test01/跳轉(zhuǎn)至/newindex.html,瀏覽器地址不變。

    ?

    rewrite ^/test01/$ ?http://www.baidu/newindex.htmil?last;

    ?

    ?  3.多域名跳轉(zhuǎn)到 www.baidu.com。

    ?

    if ($host != ‘www.baidu.com’ ) {

    rewrite ^/(.*)$ http://www.baidu.com/$1?permanent?

    }

    ?

      4. 訪問(wèn)文件和目錄不存在跳轉(zhuǎn)至 index.php。

    ?

    if ( !-e $request_filename )?

    {

    rewrite ^/(.*)$ /index.php last;

    }

    ?  

      5.目錄對(duì)換 /xxxx/123456 ?====> ?/xxxx?id=123456。

    ?

    rewrite ^/(.+)/(\d+) /$1?id=$2 last;

    ?

      6.判斷瀏覽器 User Agent?跳轉(zhuǎn)。

    ?

    if( $http_user_agent ~ MSIE)

    {

    rewrite ^(.*)$ /ie/$1 break;

    }

    ?

      7.禁止訪問(wèn)以.sh,.flv,.mp3?為文件后綴名的文件。

    ?

    location ~ .*\.(sh|flv|mp3)$?

    {?

    return 403;

    }

    ?

        9.將移動(dòng)用戶訪問(wèn)跳轉(zhuǎn)至移動(dòng)端。

    ?

    if ( $http_user_agent ~* "(Android)|(iPhone)|(Mobile)|(WAP)|(UCWEB)" )

    {

    rewrite ^/$ http://m.baidu.net/ permanent;

    }

    ?

      10. 匹配 URL?訪問(wèn)字符串跳轉(zhuǎn)。

    ?

    if ($args ~* tid=13) { return 404;

    }

    ?

      11.訪問(wèn)/10690/baidu/123?跳轉(zhuǎn)至/index.php?tid/10690/items=123,[0-9]表示任意一個(gè)數(shù)字,+?表示多個(gè),(.+)表示任何多個(gè)字符。

    rewrite ^/([0-9]+)/baidu/(.+)$ /index.php?tid/$1/items=$2 last;

    轉(zhuǎn)載于:https://www.cnblogs.com/linxizhifeng/p/6986318.html

    總結(jié)

    以上是生活随笔為你收集整理的rewirte 规则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。