目錄html
1.URL訪問跳轉,支持開發設計頁面跳轉,兼容性支持,展現效果等
2.SEO優化
3.維護
4.安全nginx
語法:rewrite regex replacement flag;,如:正則表達式
rewrite ^/images/(.*\.jpg)$ /imgs/$1 break;
rewrite ^/bbs/(.*)$ http://www.idfsoft.com/index.html redirect;
[root@khd~]#vim/usr/local/nginx/conf/nginx.conf location / { root html; index index.html index.htm; } location /status { stub_status on; allow all; } location /lcr{ root html; rewrite ^/lcr/(.*\.PNG)$ /ly/$1 break;
驗證
vim
location /lcr { root html; rewrite ^/lcr/(.*\.PNG)$ /ly/$1 break; } location /ly { root /var/www/html; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html #
驗證
安全
location /lcr { root html; rewrite ^/lcr/(.*\.PNG)$ http://chuantu.xyz/t6/702/1560238118x992245975.jpg break; } location /ly { root /var/www/html; }
驗證
網絡
location /status { stub_status on; allow all; } location /lcr { root /var/www/html; rewrite ^/lcr/(.*\.PNG)$ /ly/$1 break; }
驗證
優化
location /status { stub_status on; allow all; } location /lcr { root /var/www/html; rewrite ^/lcr/(.*\.PNG)$ /ly/$1 break; rewrite ^/ly/(.*\.PNG)$ /cwh/$1 break; } [root@khd ~]# nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@khd ~]# nginx -s reload
驗證
搜索引擎
location /lcr { root /var/www/html; rewrite ^/lcr/(.*\.PNG)$ /ly/$1 last; rewrite ^/ly/(.*\.PNG)$ /cwh/$1 break; } location /ly { root /var/www/html; } root@khd ~]# nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@khd ~]# nginx -s reload
驗證
url
[root@khd ~]# cd /var/www/html/ [root@khd html]# ls ly [root@khd html]# mv ly cwh [root@khd html]# ls cwh [root@khd html]# cd [root@khd ~]# vim /usr/local/nginx/conf/nginx.conf [root@khd ~]# nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@khd ~]# nginx -s reload location /lcr { root /var/www/html; rewrite ^/lcr/(.*\.PNG)$ /ly/$1 last; } location /ly { root /var/www/html; rewrite ^/ly/(.*\.PNG)$ /cwh/$1 break; }
驗證
設計
常見的flag
--- | --- |
---|---|
flag | 做用 |
last | 基本上都用這個flag,表示當前的匹配結束,繼續下一個匹配,最多匹配10個到20個 一旦此rewrite規則重寫完成後,就再也不被後面其它的rewrite規則進行處理 而是由UserAgent從新對重寫後的URL再一次發起請求,並從頭開始執行相似的過程 |
break | 停止Rewrite,再也不繼續匹配 一旦此rewrite規則重寫完成後,由UserAgent對新的URL從新發起請求,且再也不會被當前location內的任何rewrite規則所檢查 |
redirect | 以臨時重定向的HTTP狀態302返回新的URL |
permanent | 以永久重定向的HTTP狀態301返回新的URL |
rewrite模塊的做用是用來執行URL重定向。這個機制有利於去掉惡意訪問的url,也有利於搜索引擎優化(SEO)
nginx使用的語法源於Perl兼容正則表達式(PCRE)庫,基本語法以下:
--- | --- |
---|---|
標識符 | 意義 |
^ | 必須以^後的實體開頭 |
$ | 必須以$前的實體結尾 |
. | 匹配任意字符 |
| | 匹配 |
[] | 匹配指定字符集內的任意字符 |
[^] | 匹配任何不包括在指定字符集內的任意字符串 |
() | 分組,組成一組用於匹配的實體,一般會有 | 來協助 |
捕獲子表達式,能夠捕獲放在()之間的任何文本,好比:
^(hello|sir)$ //字符串爲「hi sir」捕獲的結果:$1=hi$2=sir //這些被捕獲的數據,在後面就能夠當變量同樣使用了