Nu sunt sigur dacă pot rezolva acest lucru dintr-o dată, dar putem merge înainte și înapoi după cum este necesar.
În primul rând, vreau să repet ceea ce cred că spuneți și să vă asigurați că sunt clar. Doriți să respingeți cererile pentru servlet1 și servlet2 este că cererea nu are referenterul potrivit și are un șir de interogare? Nu sunt sigur că înțeleg (servlet1 | servlet2) /.+\?.+ pentru că se pare că aveți nevoie de un fișier în servlet1 și 2. Cred că ați combinat PATH_INFO (înainte de "?") Cu un GET șir de interogare (după "?"). Se pare că partea PATH_INFO va funcționa, dar testul de interogare GET nu va funcționa. Am făcut un test rapid pe serverul meu folosind script1.cgi și script2.cgi și următoarele reguli au lucrat pentru a realiza ceea ce cereți. Ele sunt, evident, editate un pic pentru a se potrivi cu mediul meu:
RewriteCond %{HTTP_REFERER} !^http://(www.)?example.(com|org) [NC]
RewriteCond %{QUERY_STRING} ^.+$
RewriteRule ^(script1|script2)\.cgi - [F]
Cele de mai sus au prins toate cererile greșite de referință la script1.cgi și script2.cgi care au încercat să trimită datele utilizând un șir de interogări. Cu toate acestea, puteți să trimiteți și datele utilizând o cale_info și prin postarea datelor. Am folosit acest formular pentru a proteja împotriva oricăreia dintre cele trei metode folosite cu un referer incorect:
RewriteCond %{HTTP_REFERER} !^http://(www.)?example.(com|org) [NC]
RewriteCond %{QUERY_STRING} ^.+$ [OR]
RewriteCond %{REQUEST_METHOD} ^POST$ [OR]
RewriteCond %{PATH_INFO} ^.+$
RewriteRule ^(script1|script2)\.cgi - [F]
Pe baza exemplului pe care încercai să îl faci, cred că asta este ceea ce dorești:
RewriteCond %{HTTP_REFERER} !^http://mywebaddress(.cl)?/.* [NC]
RewriteCond %{QUERY_STRING} ^.+$ [OR]
RewriteCond %{REQUEST_METHOD} ^POST$ [OR]
RewriteCond %{PATH_INFO} ^.+$
RewriteRule (servlet1|servlet2)\b - [F]
Sperăm că acest lucru vă va aduce mai aproape de obiectivul dvs. Spuneți-ne cum funcționează, mă interesează problema dvs.
(BTW, sunt de acord că blocarea jurnalistului este o securitate slabă, dar înțeleg, de asemenea, că forțele de relaționare impun uneori soluții imperfecte și parțiale, pe care deja le recunoașteți.)