|
|
Postitatud 05.12.2014 22:45:25
|
|
|

Üks. Regulaarse avaldise vaste, kus: * ~ on tähe-tundlik sobitamine * ~* on tähtsusetundlik sobivus * !~ ja !~* on vastavalt täpitundlikud ja käänutundlikud erinevused Kaks. fail ja kataloog sobivad, kus: * -f ja !-f kasutatakse faili olemasolu määramiseks * -d ja !-d kasutatakse kataloogi olemasolu määramiseks * -e ja !-e kasutatakse faili või kataloogi olemasolu määramiseks * -x ja !-x kasutatakse selleks, et määrata, kas fail on käivitatav või mitte 3. Ümberkirjutamiskäsu viimane parameeter on lipumärk, mis on märgitud: 1.viimane on ekvivalentne apache'i [L] märgiga, mis tähendab ümberkirjutamist. 2. Paus Pärast selle reegli sobitamist lõpetatakse sobitamine ja järgnevaid reegleid enam ei sobitata. 3.Redirect tagastab 302 ajutise ümbersuunamise ning brauseri aadress kuvab pärast hüpet URL-aadressi. 4.Permanent return 301 permanent ümbersuunamine, brauseri aadress kuvab pärast hüpet URL-aadressi.
Kasuta viimast ja katkestust URI ümberkirjutuste rakendamiseks ning brauseri aadressiriba jääb muutumatuks. Ja nende vahel on väike erinevus, varjunime käsk peab olema märgitud viimasena; Kui kasutad proxy_pass direktiive, pead kasutama katkestussilti. Pärast viimase sildi täitmist selles ümberkirjutamisreeglis on see serveris{......} Tag alustab taotlust uuesti, samal ajal kui Break silt lõpetab matši pärast reeglite sobitamise lõppu. Näiteks: kui suuname URL-i nagu /photo/123456 /path/to/photo/12/1234/123456.png kirjuta ümber "/photo/([0-9]{2})([0-9]{2})([0-9]{2})"/path/to/photo/$1/$1$2/$1$2$3.png ;
Neli. NginxRewrite reegel
1. Katkesta käsk Kasutuskeskkond: server, asukoht, kui; Direktiiv lõpetab kehtiva reeglistiku ega käsitle enam ümberkirjutamise direktiivi.
2. Kui direktiiv Kasutuskeskkond: server, asukoht Seda käsku kasutatakse tingimuse täitmise kontrollimiseks ja kui jah, siis lause täitmiseks lokkis breketite sees. Kui käsk ei toeta pesastamise ega mitut tingimust && ja || Ravi.
3. Tagasta käsk süntaks: returncode ; Kasutuskeskkond: server, asukoht, kui; Seda käsku kasutatakse reegli täitmise lõpetamiseks ja kliendile staatuskoodi tagastamiseks. Näide: Kui külastatud URL lõpeb ".sh" või ".bash", tagastatakse 403 staatuskood asukoht ~ .*\. (sh|bash)?$
{ tagasipöördumine 403;
}
4. Kirjuta käsk ümber Süntaks: rewriteregex asenduslipp Kasutuskeskkond: server, asukoht, kui See direktiiv suunab URI avaldise alusel ümber või muudab stringi. Käsud täidetakse konfiguratsioonifailis olevas järjekorras. Pane tähele, et avaldiste ümberkirjutamine kehtib ainult suhteliste teede puhul. Kui soovid hostinimi siduda, peaksid kasutama if-lauseid, näiteks allpool: if( $host ~* www\.(. *) )
{ seatud $host_without_www $1; ümberkirjuta ^(.*)$ http://$host_without_www$1permanent;
}
5. Seadista käsk Süntaks: setvariable value; Vaikimisi: puudub; Kasutuskeskkond: server, asukoht, kui; Seda direktiivi kasutatakse muutuja defineerimiseks ja sellele väärtuse määramiseks. Muutuja väärtus võib olla tekst, muutuja või tekstimuutujate liit. Näide: set$varname "tere maailm";
6.Uninitialized_variable_warn juhised Süntaks: uninitialized_variable_warnon|off Kasutuskeskkond: http, server, asukoht, kui Seda käsku kasutatakse hoiatussõnumi sisse- ja väljalülitamiseks initsialiseerimata muutujate puhul ning vaikimisi väärtus on Sees.
Viis. Nginx Rewrite reeglite kirjutamise näide 1. Kui ligipääsetav fail ja kataloog ei eksisteeri, suuna edasi teatud php faili juurde if( !-e $request_failinimi )
{ ümberkirjuta ^/(.*)$ index.php viimasena;
}
2. Kataloogi vahetus /123456/xxxx ====> /xxxx?id=123456 kirjuta ümber ^/(\d+)/(.+)/ /$2?id=$1 viimasena;
3. Kui klient kasutab IE brauserit, suunab see /ie kataloogi if( $http_user_agent ~ MSIE)
{ ümberkirjutamine ^(.*)$ /ie/$1 katkestus;
}
4. Keela juurdepääs mitmele kataloogile asukoht ~ ^/(cron|mallid)/
{ eitada kõike; paus;
}
5. Keela juurdepääs failidele, mis algavad /data asukoht ~ ^/andmed
{ eitada kõike;
}
6. Keelata juurdepääs failidele, mille sufiksid on .sh, .flv, .mp3 asukoht ~ .*\. (sh|flv|mp3)$
{ tagasipöördumine 403;
}
7. Määra brauseri vahemälu aeg teatud tüüpi failide jaoks asukoht ~ .*\. (gif|jpg|jpeg|png|bmp|swf)$
{ aegub 30d;
} asukoht ~ .*\. (js|css)$
{ aegub 1 tundi;
}
8. Määra favicon.ico ja robots.txt aegumisajad; Siin on favicon.ico 99 päeva, robots.txt 7 päeva ja 404 vealogi ei ole registreeritud asukoht ~(favicon.ico) { log_not_found minema; aegub 99d; paus;
} asukoht ~(robots.txt) { log_not_found minema; aegub 7d; paus;
}
9. Määrake teatud dokumendi kehtivusaeg; See on 600 sekundit ja ligipääsulogisid ei salvestata asukoht ^~ /html/scripts/loadhead_1.js { access_log ära; root /opt/lampp/htdocs/web; aegub 600; paus;
}
10. Anti-hotlink failid ja määratud aegumisajad Return412 siin on kohandatud HTTP staatuskood, mis vaikimisi on 403, mis on mugav õige hotlingi päringu leidmiseks "kirjuta ümber ^/ ; "Näitab pilti anti-hotlingist "access_log ära;" Ligipääsulogisid ei salvestata, mis vähendab stressi "3D aegub" 3 päeva brauseri vahemälu kõigi failide jaoks
asukoht ~*^.+\. (jpg|jpeg|gif|png|swf|rar|zip|css|js)$ { valid_referers blokeeritud *.xx.com*.xx.net localhost 208.97.167.194; if ($invalid_referer) { ümberkirjutamine ^/ ; tagasipöördumine 412; paus;
} access_log ära; root /opt/lampp/htdocs/web; aegub 3d; paus;
}
11. Luba veebilehele ainult fikseeritud IP-aadressi parooliga
root /opt/htdocs/www; luba 208.97.167.194; luba 222.33.1.2; luba 231.152.49.4; eitada kõike; auth_basic "C1G_ADMIN"; auth_basic_user_file htpasswd;
12Muuda mitmetasandilistes kataloogides failid üheks failiks, et parandada SEO efekte
/job-123-456-789.html 指向/job/123/456/789.html
rewrite^/job-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /job/$1/$2/jobshow_$3.html viimane;
13. Suuna ümber, kui faile ja katalooge ei eksisteeri:
if (!-e $request_filename) { proxy_pass http://127.0.0.1;
}
14. Suuna juurkataloogi kaust 2. taseme katalle Näiteks /shanghaijob/ osutab /area/shanghai/ Kui vahetad viimase püsivaks, siis brauseri aadressiriba on /location/shanghai/ ümberkirjuta ^/([0-9a-z]+)job/(.*)$ /area/$1/$2last; Probleem ülaltoodud näitega on see, et see ei klapi /shanghai ligipääsul kirjuta ümber ^/([0-9a-z]+)job$ /area/$1/ viimasena; ümberkirjuta ^/([0-9a-z]+)job/(.*)$ /area/$1/$2last; See tee/shanghai on samuti ligipääsetav, kuid lehe suhtelised lingid pole saadaval, Kui ./list_1.html tegelik aadress on /area/shanghia/list_1.html muutub /list_1.html-ks, muutes selle ligipääsmatuks. Siis ei saa automaatset hüppamist lisada (-d $request_filename) puhul on tingimus, et see peab olema päris kataloog, ja minu ümberkirjutus ei ole, seega see ei mõjuta if (-d $request_filename){ ümberkirjuta ^/(.*)([^/])$ http://$host/$1$2/permanent;
} See on lihtne, kui põhjus on teada, las ma hüppan käsitsi ümberkirjuta ^/([0-9a-z]+)job$ /$1job/püsiv; ümberkirjuta ^/([0-9a-z]+)job/(.*)$ /area/$1/$2last;
15. Domeeninimede vahetamine Server
{ kuula 80; server_name jump.linuxidc.com; indeks index.html index.htm index.php; root /opt/lampp/htdocs/www; ümberkirjuta ^/ http://www.xx.com/; access_log ära;
}
16. Mitme domeeni pööramine server_name www.xx.comwww.xx.com; indeks index.html index.htm index.php; root /opt/lampp/htdocs; if ($host ~ "linuxidc\.net") { ümberkirjutamine ^(.*) http://www.xx.com$1permanent;
}
6. nginx globaalsed muutujad arg_PARAMETER #这个变量包含GET请求中, kui on olemas muutuv PARAMEETER. args #这个变量等于请求行中 (GET request) parameetrid, nt foo=123&bar=blahblah; binary_remote_addr #二进制的客户地址. body_bytes_sent #响应时送出的body字节数数量. Need andmed on täpsed isegi siis, kui ühendus katkeb. content_length #请求头中的Content pikkuse väljakuga. content_type #请求头中的Content-tüüpi väli. cookie_COOKIE #cookie COOKIE muutuja väärtust document_root #当前请求在root指令中指定的值. document_uri #与uri相同. hosti #请求主机头字段, muidu serveri nimi. hostname #Set masina hostinimele, mida tagastab gethostname http_HEADER is_args #如果有args参数 on see muutuja võrdne "?"-ga, muidu "", nullväärtusega. http_user_agent #客户端agent信息 http_cookie #客户端cookie信息 limit_rate #这个变量可以限制连接速率. query_string #与args相同. request_body_file #客户端请求主体信息的临时文件名. request_method #客户端请求的动作, tavaliselt GET või POST. remote_addr #客户端的IP地址. remote_port #客户端的端口. remote_user #已经经过Auth Kasutajanimi on valideeritud Basic mooduli poolt. request_completion #如果请求结束, sea see OK-iks. Tühjenda, kui päring pole lõpetatud või kui taotlus ei ole taotlusahela viimane. request_method #GET或POST request_filename #当前请求的文件路径, mis genereeritakse root- või alias-direktiivide ja URI-päringute poolt. request_uri #包含请求参数的原始URI ei sisalda see hostnime, nt "/foo/bar.php?arg=baz". ei saa muuta. skeemi #HTTP方法 (nt http, https). server_protocol #请求使用的协议, tavaliselt HTTP/1.0 või HTTP/1.1. server_addr #服务器地址 saab selle väärtuse määrata pärast süsteemikõne lõpetamist. server_name #服务器名称. server_port #请求到达服务器的端口号.
Seitse. Apache ja Nginxi reeglite kirjavahetus Apache'i RewriteCond vastab Nginxi omale, kui Apache'i RewriteRule vastab Nginxi ümberkirjutusele Apache [R] vastab Nginxi suunamisele [P] vastab apache keeles viimasele Nginxis Apache [R,L] vastab Nginxi ümbersuunamisele Apache'i [P,L] vastab Nginxi viimasele Apache [PT,L] vastab Nginxi viimasele
Näiteks lubada kindlal domeeninimel sellele saidile ligi pääseda ja alati pöörduda www.xx.com teiste domeeninimede poole Apache: RewriteCond %{HTTP_HOST} !^(.*?) \.aaa\.com$[NC] RewriteCond %{HTTP_HOST} !^localhost$ RewriteCond %{HTTP_HOST}!^192\.168\.0\. (.*?) $ RewriteRule ^/(.*)$ http://www.xx.com[R,L]
Nginx: if( $host ~* ^(.*)\.aaa\.com$ )
{ seade $allowHost '1';
} if( $host ~* ^localhost )
{ seade $allowHost '1';
} if( $host ~* ^192\.168\.1\.(. *?) $ )
{ seade $allowHost '1';
} if( $allowHost !~ '1' )
{ rewrite ^/(.*)$ http://www.xx.comredirect ;
}
|
Eelmine:Sina Weibo skaneerib koodi, et maksta 1 senti, et saada aasta lõpu boonus kuni 2015. aasta jüaaniniJärgmine:CMD5 murrab Windowsi süsteemiadministraatori parooli
|