mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-07 02:53:10 +09:00
#18530429 * SSO 및 페이지 리다이렉션에서 크롤러는 제외토록 수정
* 크롤러 판단 함수 추가 * 믹시, 한RSS 포함 등 git-svn-id: http://xe-core.googlecode.com/svn/sandbox@7038 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
f3996d9f58
commit
ddd38183de
3 changed files with 24 additions and 2 deletions
|
|
@ -360,7 +360,7 @@
|
|||
**/
|
||||
function checkSSO() {
|
||||
// pass if it's not GET request or XE is not yet installed
|
||||
if(stristr($_SERVER["HTTP_USER_AGENT"], "bot") != FALSE) return true;
|
||||
if(isCrawler()) return true;
|
||||
if(Context::getRequestMethod()!='GET' || !Context::isInstalled() || in_array(Context::get('act'),array('rss','atom'))) return true;
|
||||
|
||||
// pass if default URL is not set
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@
|
|||
if(!$module_info && !$this->module && $site_module_info->module_site_srl) $module_info = $site_module_info;
|
||||
|
||||
// redirect, if site_srl of module_info is different from one of site's module_info
|
||||
if($module_info && $module_info->site_srl != $site_module_info->site_srl) {
|
||||
if($module_info && $module_info->site_srl != $site_module_info->site_srl && !isCrawler()) {
|
||||
// If the module is of virtual site
|
||||
if($module_info->site_srl) {
|
||||
$site_info = $oModuleModel->getSiteInfo($module_info->site_srl);
|
||||
|
|
|
|||
|
|
@ -835,4 +835,26 @@
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
function isCrawler($agent = null) {
|
||||
if(!$agent) $agent = $_SERVER['HTTP_USER_AGENT'];
|
||||
$check_agent = array('bot', 'google', 'yahoo', 'daum', 'fish', 'hanrss');
|
||||
$check_ip = array(
|
||||
'211.245.21.11*' /* mixsh */
|
||||
);
|
||||
|
||||
foreach($check_agent as $str) {
|
||||
if(stristr($agent, $str) != FALSE) return true;
|
||||
}
|
||||
|
||||
$check_ip = '/^('.implode($check_ip, '|').')/';
|
||||
$check_ip = str_replace('.', '\.', $check_ip);
|
||||
$check_ip = str_replace('*', '.+', $check_ip);
|
||||
$check_ip = str_replace('?', '.?', $check_ip);
|
||||
|
||||
if(preg_match($check_ip, $_SERVER['REMOTE_ADDR'], $matches)) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue