<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    NginxApacheRewrite規則的區別

     
    1. Nginx Rewrite規則相關指令 

    Nginx Rewrite規則相關指令有ifrewritesetreturnbreak等,其中rewrite是最關鍵的指令。一個簡單的Nginx Rewrite規則語法如下:

     

    rewrite ^/b/(.*)\.html /play.php?video=$1 break;

     

    如果加上if語句,示例如下: 
    if (!-f $request_filename)

    { rewrite ^/img/(.*)$ /site/$host/images/$1 last;      }



    2. Nginx與Apache的Rewrite規則實例對比

        簡單的NginxApache 重寫規則區別不大,基本上能夠完全兼容。


     Apache Rewrite 規則: 

     

    RewriteRule ^/(mianshi|xianjing)/$ /zl/index.php?name=$1 [L]

    RewriteRule ^/ceshi/$ /zl/ceshi.php [L]

    RewriteRule ^/(mianshi)_([a-zA-Z]+)/$ /zl/index.php?name=$1_$2 [L] RewriteRule ^/pingce([0-9]*)/$ /zl/pingce.php?id=$1 [L]

     

    Nginx Rewrite 規則: 

    rewrite ^/(mianshi|xianjing)/$ /zl/index.php?name=$1 last;

    rewrite ^/ceshi/$ /zl/ceshi.php last;

    rewrite ^/(mianshi)_([a-zA-Z]+)/$ /zl/index.php?name=$1_$2 last;

    rewrite ^/pingce([0-9]*)/$ /zl/pingce.php?id=$1 last;



        不難發現ApacheRewrite規則改為NginxRewrite規則挺簡單的,如果改完規則,使用"nginx -t"命令檢查發現nginx.conf配置文件有語法錯誤,那么可以嘗試給條件加上引號。例如一下的Nginx Rewrite規則會報語法錯誤: 

    rewrite  ^/([0-9]{5}).html$ /x.jsp?id=$1  last;加上引號就正確了:   

    rewrite  “^/([0-9]{5}).html$” /x.jsp?id=$1  last;

     

    ApacheNginxRewrite規則在URL跳轉時有細微的區別: 

    Apache Rewrite 規則: 
     

    RewriteRule  ^/html/tagindex/([a-zA-Z]+)/.*$ /$1/ [R=301,L]
    Nginx Rewrite 規則:

    rewrite  ^/html/tagindex/([a-zA-Z]+)/.*$ http://$host/$1/  permanent;


    以上示例中,我們注意到,Nginx Rewrite 規則的置換串中增加了“http://$host”,這是在Nginx中要求的。 
        
    另外,ApacheNginxRewrite規則在變量名稱方面也有區別,例如: 
    Apache Rewrite 規則: 

    RewriteRule ^/user/login/$ /user/login.php?login=1&forward=http://%{HTTP_HOST}  [L]
        
    Nginx Rewrite 規則: 

    rewrite  ^/user/login/$ /user/login.php?login=1&forward=http://$host  last;
    ApacheNginx Rewrite 規則的一些功能相同或類似的指令、標記對應關系: 
    ApacheRewriteCond指令對應Nginxif指令; 
    ApacheRewriteRule指令對應Nginxrewrite指令; 
    Apache[R]標記對應Nginxredirect標記; 
    Apache[P]標記對應Nginxlast標記; 
    Apache[R,L]標記對應Nginxredirect標記; 
    Apache[P,L]標記對應Nginxlast標記; 
    Apache[PT,L]標記對應Nginxlast標記; 

    允許指定的域名訪問本站,其他域名一律跳轉到http://www.aaa.com 
     

    Apache Rewrite 規則: 

    RewriteCond %{HTTP_HOST}    ^(.*?)\.domain\.com$

    RewriteCond %{HTTP_HOST}    !^qita\.domain\.com$ RewriteCond %{DOCUMENT_ROOT}/market/%1/index.htm -f

    RewriteRule ^/wu/$ /market/%1/index.htm [L]
        
    Nginxif指令不支持嵌套,也不支持ANDOR等多條件匹配,相比于ApacheRewriteCond,顯得麻煩一些,但是,我們可以通過下一頁的Nginx配置寫法來實現這個示例: 
        Nginx Rewrite 規則: 
     

    if ($host ~* ^(.*?)\.domain\.com$)    

    {

    set $var_wupin_city $1;    

    set $var_wupin ‘1′;    

    }    

     

    if ($host ~* ^qita\.domain\.com$)

    {

    set $var_wupin ‘0′;    

    }    

     

    if (!-f $document_root/market/$var_wupin_city/index.htm)    

    {

    set $var_wupin ‘0′;    

    }    

     

    if($var_wupin ~ ‘1′)    

    {

    rewrite ^/wu/$ /market/$var_wupin_city/index.htm last;    

    }

     

    備注學習:

    rewrite ^/serach/(.*).html  http://www.xxx.com/search.action?keywords=$1 last; 

    訪問http://www.xxx.com/search/mp3.html瀏覽url重定向http://www.xxx.com/search.action?keywords=mp3 

     

    posted on 2011-12-14 17:35 -274°C 閱讀(5624) 評論(1)  編輯  收藏 所屬分類: nginx


    FeedBack:
    # re: Nginx與Apache的Rewrite規則的區別
    2012-12-10 16:15 |
    請問一下,nginx 兼容的 rewrite 指令實現偽靜態怎么寫? 博客在子目錄/blog
    服務器環境:nginx/alpha
      回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    常用鏈接

    留言簿(21)

    隨筆分類(265)

    隨筆檔案(242)

    相冊

    JAVA網站

    關注的Blog

    搜索

    •  

    積分與排名

    • 積分 - 914253
    • 排名 - 40

    最新評論

    主站蜘蛛池模板: 亚洲国产成人精品不卡青青草原| 久久精品国产亚洲AV蜜臀色欲| 亚洲国产精品精华液| 国产一区二区免费视频| 国产裸模视频免费区无码| 久久久亚洲裙底偷窥综合| 国产免费区在线观看十分钟| 好吊妞在线新免费视频| 91情国产l精品国产亚洲区| 一区在线免费观看| 免费看的黄色大片| 亚洲校园春色小说| 免费网站观看WWW在线观看| 免费观看日本污污ww网站一区| 亚洲乱码无限2021芒果| 免费视频一区二区| 中文字幕精品无码亚洲字| MM1313亚洲精品无码久久| 美女被cao免费看在线看网站| 亚洲AV无码乱码国产麻豆穿越| 理论片在线观看免费| 成人性生免费视频| 亚洲欧洲国产经精品香蕉网| 国产午夜精品久久久久免费视| 亚洲成a人片在线观看国产| 亚洲精品久久无码| 97视频热人人精品免费| 337p日本欧洲亚洲大胆艺术| 青青操免费在线视频| 亚洲人成国产精品无码| 国产亚洲女在线线精品| 全免费a级毛片免费看不卡| 亚洲黄色激情视频| 国产91色综合久久免费分享| 亚洲国产成人精品不卡青青草原| 精品久久久久久无码免费| 亚洲精品人成无码中文毛片| 国产精品亚洲色婷婷99久久精品| 好男人看视频免费2019中文| 亚洲国产成人精品激情| 99无码人妻一区二区三区免费|