Nginx Rewrite規則初探
Nginx rewrite(nginx url地址重寫)
Rewrite 主要的功能就是實現URL的重寫,Nginx的Rewrite規則採用Pcre,perl相容正規表示式的語法規則匹配,如果需要Nginx的Rewrite功能,在編譯Nginx之前,需要編譯安裝PCRE庫。
Rewrite 主要的功能就是實現URL的重寫,Nginx的Rewrite規則採用Pcre,perl相容正規表示式的語法規則匹配,如果需要Nginx的Rewrite功能,在編譯Nginx之前,需要編譯安裝PCRE庫。
通過Rewrite規則,可以實現規範的URL、根據變數來做URL轉向及選擇配置。
if 指令
規則語法:
規則語法:
- if ($http_user_agent ~MSIE){
- rewrite ^(.*)$/msie/$1 break;
- }
- if (!-f$request_filename){
- rewrite ^/img/(.*)$/site/$host/images/$1 last;
- }
rewrite 語法規則:
變數名:
變數名可以使用"="或"!="運算子
~ 符號表示區分大小寫字母匹配
~* 符號表示不區分大小寫字母匹配
!~ 和 !~ 與~ !~ 相反
-f 和 !-f 用來判斷檔案是否存在
-d 和 !-d 用來判斷目錄是否存在
-e 和 !-e 用來判斷檔案或目錄是否存在
-x 和 !-x 用來判斷檔案是否可以執行
也支援$1到$9位置引數
return指令
示例:,如果訪問的URL以.sh .bash 結尾,返回狀態碼403
- location ~ .*\.(sh|bash)?$
- {
- return 403;
- }
rewrite指令
- rewrite指令的最後一項引數為flag標記,支援的flag標記主要有以下幾種:
- last :相當於Apache裡德(L)標記,表示完成rewrite;
- break;本條規則匹配完成後,終止匹配,不再匹配後面的規則
- redirect:返回302臨時重定向,瀏覽器地址會顯示跳轉後的URL地址
- permanent:返回301永久重定向,瀏覽器位址列會顯示跳轉後的URL地址
- last和break用來實現URL重寫,瀏覽器位址列URL地址不變
例項:將訪問/b跳轉到/bbs目錄上去:
- location /b {
- autoindex on;
- alias /usr/local/nginx/html/redhat;
- rewrite ^/b/?$ /bbs permanent;
- }
- location /bbs {
- autoindex on;
- alias /usr/local/nginx/html/bbs;
- }
rewrite規則編寫例項
1,將原來要訪問/b的目錄重寫為/bbs
核心語句:
1,將原來要訪問/b的目錄重寫為/bbs
核心語句:
- rewrite ^/b/?$ /bbs permannet;
2,根據不同的瀏覽器將得到不同的結果。
- if ($http_user_agent ~ Firefox) {
- rewrite ^(.*)$ /firefox/$1 break;
- }
- if ($http_user_agent ~ MSIE) {
- rewrite ^(.*)$ /msie/$1 break;
- }
- if ($http_user_agent ~ Chrome) {
- rewrite ^(.*)$ /chrome/$1 break;
- }
3.防止盜鏈:
根據Referer資訊防止盜鏈,程式碼如下:
- location ~*\.(gif|jpg|png|swf|flv)${
- valid_referers none blocked www.cheng.com*.test.com;
- if ($invalid_referer)
- rewrite ^/(.*) http://www.cheng.com/error.html
- }
4.實現域名跳轉:
- server {
- listen 80;
- server_name cheng.example.com;
- write ^(.*)$ http://zhang.example.com/$1 permanent;
- location / {
- root html;
- index index.html index.htm;
- }
相關文章
- nginx location匹配及rewrite規則Nginx
- nginx配置location總結及rewrite規則寫法Nginx
- nginx rewriteNginx
- Nginx RewriteNginx
- Nginx rewrite 詳解Nginx
- Nginx 跳轉規則Nginx
- nginx location匹配規則Nginx
- nginx thinkphp rewrite配置項NginxPHP
- nginx rewrite語法格式Nginx
- nginx高階篇rewriteNginx
- Nginx匹配規則練習Nginx
- Nginx 實現 Rewrite 跳轉Nginx
- Nginx 初探Nginx
- Nginx location匹配及Rewrite重寫Nginx
- nginx的location 規則匹配練習Nginx
- nginx偽靜態規則重寫Nginx
- Nginx Rewrite實際應用配置解析Nginx
- Nginx URL重寫規則配置詳解Nginx
- PbootCMS網站nginx偽靜態規則boot網站Nginx
- Apache之Rewrite和RewriteRule規則梳理以及http強轉https的配置總結ApacheHTTP
- Nginx 學習總結(4)—— Rewrite 模組Nginx
- NGINX使用rewrite實現http 跳轉 httpsNginxHTTP
- nginx學習-ngx_http_rewrite_module模組NginxHTTP
- ThinkPHP5 利用.htaccess檔案的 Rewrite 規則隱藏URL中的 index.phpPHPIndex
- 理解 Nginx 在處理請求時的匹配規則Nginx
- 一篇文章說透Nginx的rewrite模組Nginx
- 初探正規表示式
- Nginx的location規則:優先順序和路徑替換Nginx
- 規則
- 正則匹配規則2
- ubuntu15 安裝nginx 報錯:the HTTP rewrite module requires the PCRE library.UbuntuNginxHTTPUI
- 寫給後端的Nginx初級入門教程:Nginx原理初探後端Nginx
- ESlint規則EsLint
- url規則
- makefile規則
- canvas非零繞組規則與奇偶規則Canvas
- 正則匹配規則記錄
- git提交規則Git
- 1、基本規則