'; print '

'.__('404 to Start Settings', 'f042start').'

'; print '
'; wp_nonce_field('update-options', '_wpnonce'); settings_fields( 'f042start_option-group'); print'
'.__('404 Redirect', 'f042start').'
'.__('off', 'f042start').'
'.__('301 - Moved permanently', 'f042start').'
'.__('302 - Found/ Moved temporarily (not recommended)', 'f042start').'
'.__('Email alert to: ', 'f042start').'
    '.__('Exclude logged in users from triggering email alert', 'f042start').'
    '.__('Exclude search engine agents from triggering email alert', 'f042start').'
    '.__('Exclude hacking attempts from triggering email alert. (Experimental, leave this unchecked if you feel unsure.)', 'f042start').'
'.__('Target Url: (Start with https://)', 'f042start').'
'; print '

'; print '
'; print ''; print '


'; require_once('whatsup.php'); } // sanitize function function f042start_check_values($input) { # check target url if (!f042start_is_valid_url($input)) { add_settings_error('f042start_option-group', 'settings_updated', __('This is not a valid Url', 'f042start'), $type = 'error'); } return $input; } function f042start_checked($checkOption, $checkValue) { return get_option($checkOption)==$checkValue ? " checked" : ""; } // Trap 404 errors and redirect them to start page // 301=permanently moved // 302=temporary function f042start_output_header() { # setting default target to prevent errors if (get_option('f042start_target')=="") { $target=home_url(); } else { $target=get_option("f042start_target"); } if ( is_404() && get_option("f042start_emailalert") ) { if ( f042start_is_infinitescroll() || (get_option("f042start_exclude") && is_user_logged_in()) || (get_option("f042start_exclude2") && f042start_is_crawlers()) || (get_option("f042start_exclude3") && f042start_is_hacker(f042start_curPageURL())) ) { // no mail } else { // send email alert $message=get_bloginfo('name')."\n"; $message.=get_bloginfo('wpurl')."\n"; $message.="False URL: ".f042start_curPageURL()."\n"; $message.="Referer URL: ".$_SERVER['HTTP_REFERER']."\n"; $message.="User agent: ".$_SERVER['HTTP_USER_AGENT']."\n"; $message.="Remote Host: ".$_SERVER['REMOTE_HOST']."\n"; $message.="Remote Addres: ".$_SERVER['REMOTE_ADDR']."\n"; $returnvalue=wp_mail( get_option("f042start_emailaddres"), __('404 alert from ', 'f042start').get_bloginfo('name'), $message, "From: ".get_bloginfo('admin_email') ); } } if ( !is_404() || get_option("f042start_type")=="off" ) return; wp_redirect( $target, get_option("f042start_type") ); } function f042start_is_valid_url ( $url ) { if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) return false; else return true; } function f042start_curPageURL() { $pageURL = 'http'; if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") {$pageURL .= "s";} $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; } else { $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; } return $pageURL; } function f042start_is_crawlers() { $sites = 'MnoGoSearch|facebookexternalhit|Squider|NING|genieo|butterfly|JS-Kit|InAGist|BUbiNG|crawler|Java|Google|Yahoo|Ask|bot|spider|Twikle|flipboard|longurl|crowsnest|peerindex|UnwindFetchor'; // Add the rest of the search-engines return (preg_match("/$sites/i", $_SERVER['HTTP_USER_AGENT']) > 0) ? true : false; } function f042start_is_hacker($checkurl) { $hackersurl = 'wp-content\/plugins\/'; // don't check this return (preg_match("/$hackersurl/i", $checkurl) > 0) ? true : false; } function f042start_is_infinitescroll() { # page/4 if (preg_match("/page\/\d+/", f042start_curPageURL())) { # error_log("f042start: ".f042start_curPageURL()); return true; } return false; } ?>