最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx的偽靜態(tài)配置中使用rewrite來實現(xiàn)自動補全的實例

 更新時間:2015年12月30日 11:08:22   作者:jevien  
這篇文章主要介紹了Nginx的偽靜態(tài)配置中使用rewrite來實現(xiàn)自動補全的實例,文中對rewrite的相關參數(shù)和正則表達使用也做了介紹,需要的朋友可以參考下

nginx+php 使用的時候經(jīng)常需要偽靜態(tài),一般大家都手動設置。那有沒有辦法讓 nginx 自動補全路徑呢?
這兩天折騰很久,才實現(xiàn)了這樣一個功能:
請求 /a/b/c
若文件不存在,查找 /a/b/index.php,/c 作為 PATH_INFO;
若文件不存在,查找 /a/index.php,/b/c 作為 PATH_INFO;
若文件不存在,查找 /index.php,/a/b/c 作為 PATH_INFO;
若文件不存在,返回 404.

雖然這種損耗性能的行為不適合部署,但在本機調試的時候還是能夠帶來方便的 :)

server 端應有如下代碼,其他部分使用自己的配置:

index index.php index.html index.htm;

location / {
  set $path $request_uri;
  set $path_info "";

  try_files $uri $uri/ @404;
}

location @404 {
  if ($path ~ ^(.*)(/.+)$) {
    set $path $1/index.php;
    set $path_info $2;
    rewrite .* $path last;
  }
  return 404;
}

location ~ .+.php($|/) {
  fastcgi_split_path_info ^(.+.php)(/.+)$;
  if ($path_info !~ .*) {
    set $path_info $fastcgi_path_info;
  }
  try_files $fastcgi_script_name @404php;

  fastcgi_param PATH_INFO $path_info;

  fastcgi_index index.php;
  include fastcgi.conf;

  fastcgi_pass unix:/usr/local/var/run/php-fpm.sock;
  fastcgi_connect_timeout 60;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
}

location @404php {
  if ($path = /index.php) {
    return 404;
  }

  if ($path ~ ^(.*)(/.+)/index.php$) {
    set $path_info $2;
    set $path $1/index.php;
    rewrite .* $path last;
  }
  return 404;
}

Rewrite的Flags
last - 基本上都用這個Flag。
break - 中止Rewirte,不在繼續(xù)匹配
redirect - 返回臨時重定向的HTTP狀態(tài)302
permanent - 返回永久重定向的HTTP狀態(tài)301
規(guī)則:
一般在非根的location中配置rewrite,都是用的break;而根的location使用last比較好,因為如果配置了fastcgi或代理訪問jsp文件的話,在根location下用break是訪問不到

正則表達式形式的模式匹配,如~*和~

  • ‘~'表示大小寫敏感的匹配
  • ‘~*'表示大小寫不敏感的匹配(例如:“firefox”字符串可以成功匹配“FireFox”)
  •  !~和!~*代表跟后面的正則匹配規(guī)則相反的規(guī)則,表示不能匹配當前正則表達式規(guī)則的字符串執(zhí)行后面的處理語句
  • 使用-f參數(shù)以及!-f參數(shù)檢測一個文件是否存在
  • 使用-d參數(shù)以及!-d參數(shù)檢測一個目錄(路徑)是否存在
  • 使用-e以及!-e檢測是否存在一個文件,一個目錄或者一個符號鏈接。
  • 使用-x以及!-x檢測一個文件是否可執(zhí)行
  • 正則表達式部分可以嵌套,表達式后面的部分如果用到前面的表達式可以用 $1 到$9 變量表示。

相關文章

  • windows下快速安裝nginx并配置開機自啟動的方法

    windows下快速安裝nginx并配置開機自啟動的方法

    這篇文章主要介紹了windows下快速安裝nginx 并配置開機自啟動的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05
  • 一文詳解Nginx的訪問限制與訪問控制

    一文詳解Nginx的訪問限制與訪問控制

    訪問限制是一種防止惡意訪問的常用手段,可以指定同一IP地址在固定時間內(nèi)的訪問次數(shù),訪問控制是控制客戶端對服務端的訪問,并非僅限制請求次數(shù),而是允許某些請求或者直接拒絕某些請求,本文給大家具體介紹了Nginx的訪問限制與訪問控制,需要的朋友可以參考下
    2024-09-09
  • Nginx配置跨域請求Access-Control-Allow-Origin * 詳解

    Nginx配置跨域請求Access-Control-Allow-Origin * 詳解

    這篇文章主要給大家介紹了關于Nginx配置跨域請求Access-Control-Allow-Origin * 的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Nginx具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • Nginx啟用proxy_cache緩存的方法

    Nginx啟用proxy_cache緩存的方法

    本篇文章主要介紹了Nginx啟用proxy_cache緩存的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 解決nginx啟動失敗(bind()?to?0.0.0.0:80?failed,An?attempt?was?made?to?access?a?socket?in...)

    解決nginx啟動失敗(bind()?to?0.0.0.0:80?failed,An?attempt?was?

    這篇文章主要介紹了解決nginx啟動失敗問題(bind()?to?0.0.0.0:80?failed,An?attempt?was?made?to?access?a?socket?in?...),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • windows下nginx服務關不掉問題解決

    windows下nginx服務關不掉問題解決

    這篇文章主要給大家介紹了關于windows下nginx服務關不掉問題解決的相關資料,nginx是一種網(wǎng)絡服務器,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • Nginx防盜鏈的配置方法

    Nginx防盜鏈的配置方法

    這篇文章主要介紹Nginx下的防盜鏈的配置方法,需要的朋友可以參考下
    2013-04-04
  • 在Nginx服務器上配置Google反向代理的基本方法

    在Nginx服務器上配置Google反向代理的基本方法

    這篇文章主要介紹了在Nginx服務器上配置Google反向代理的基本方法,文中使用到了SSL來加密反向代理,需要的朋友可以參考下
    2015-12-12
  • Nginx修改默認80端口(解決跟Tomcat的端口沖突)

    Nginx修改默認80端口(解決跟Tomcat的端口沖突)

    本文主要介紹了Nginx修改默認80端口(解決跟Tomcat的端口沖突),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • LNMP原理與簡單部署過程

    LNMP原理與簡單部署過程

    LNMP架構,是指在Linux平臺下,由運行Nginx的web服務器,運行PHP的動態(tài)頁面解析程序和運行MySQL的數(shù)據(jù)庫組成的網(wǎng)站架構,也是當前常用的系統(tǒng)架構之一,本文主要介紹LNMP原理與簡單部署,感興趣的朋友一起看看吧
    2023-08-08

最新評論

漳平市| 无极县| 铜山县| 海宁市| 新闻| 宜宾市| 克什克腾旗| 桦甸市| 万宁市| 涿州市| 万山特区| 朝阳县| 望城县| 镶黄旗| 社旗县| 文昌市| 连州市| 双桥区| 沙坪坝区| 萨迦县| 无极县| 汉沽区| 枣强县| 阳高县| 四平市| 大同县| 同心县| 龙里县| 遂平县| 泰州市| 巍山| 神木县| 油尖旺区| 石渠县| 竹山县| 象山县| 玛纳斯县| 类乌齐县| 新邵县| 休宁县| 临夏市|