Discuz伪静态代码

<?php
/**
 *	[伪静态跳转(xugui_redirect.{modulename})] (C)2012-2099 Powered by  懒人V难人.
 *	Version: 1.0
 *	Date: 2012-8-1 15:28
 */

if(!defined('IN_DISCUZ')) {
	exit('Access Denied');
}
class plugin_xugui_redirect {
	
	function plugin_xugui_redirect(){
		global $_G;
		//$this->tml=new template();
		$this->user_no_on = $_G['cache']['plugin']['xugui_redirect']['user_no_on'];
		$this->redirect_on = $_G['cache']['plugin']['xugui_redirect']['redirect_on'];
		$this->tag_rewrite_on = $_G['cache']['plugin']['xugui_redirect']['tag_rewrite_on'];
		$this->portal_cat_on = $_G['cache']['plugin']['xugui_redirect']['portal_cat_on'];
		$this->custom_replace = trim($_G['cache']['plugin']['xugui_redirect']['custom_replace']);
		if(empty($this->custom_replace)){
			$this->custom_replace="comsenz.com->sharejie.com";
		}
	}
	private function getreplace_Url(){
		$Url=$_SERVER['REQUEST_URI'];
		$pinfo=pathinfo($_SERVER['SCRIPT_NAME']);
		$pinfo['dirname']=($pinfo['dirname']=="\\"||$pinfo['dirname']=="/")?"":$pinfo['dirname'];
		$Url=ltrim(str_replace($pinfo['dirname'],"",$Url),'/');
		$Url=str_replace(array('&extra','&page'),array('&extra','&page'),$Url);
		$tempUrl=output_replace('<a href="'.$Url.'">a</a>');	
		$tempUrl= preg_replace ('/<a[^>]*?href="(.*?)"[^>]*>a<\/a>/i', "$1", $tempUrl);
		$tempUrl=str_replace('&', '&', $tempUrl);
		if(strpos($tempUrl, "http://")===0){
			return $tempUrl;
		}
		return "http://".$_SERVER['HTTP_HOST'].$pinfo['dirname']."/".$tempUrl;
	}
	private function checkDomain($url){
		global $_G;
		if(!empty($_G['setting']['output']['str']['search'])) {
			if(empty($_G['setting']['domain']['app']['default'])) {
				$_G['setting']['output']['str']['replace'] = str_replace('{CURHOST}', $_G['siteurl'], $_G['setting']['output']['str']['replace']);
			}
			$pinfo=pathinfo($_SERVER['SCRIPT_NAME']);
			if($pinfo['dirname']!="\\"){
				return $url;
			}
			$Script_basename=$pinfo['basename'];
			$A_Script_basename = str_replace($_G['setting']['output']['str']['search'], $_G['setting']['output']['str']['replace'], '<a href="'.$Script_basename);
			$A_Script_basename=str_replace('<a href="',"",$A_Script_basename);
			if($A_Script_basename==$Script_basename){
				return $url;
			}
			$url_info=parse_url($A_Script_basename);
			if($url_info['host']!=$_SERVER['HTTP_HOST']){
				return str_replace($_SERVER['HTTP_HOST'],$url_info['host'],$url);
			}
		}
		return $url;
	}
	function common(){
		if(defined('IN_MODCP') || defined('IN_ADMINCP')) return "";
		global $_G;
		if($this->user_no_on){
			if($_G['groupid'] !='7'&&$_G['groupid'] !='20'){
				//禁用
				$_G['setting']['output'] = array("0"=>"0");
				return;
			}
		}
		//标签伪静态
		if($this->tag_rewrite_on&&!empty($_G['setting']['output']['preg']['search'])){
			$_G['setting']['output']['preg']['search']['xugui_tag_top']='/<a([^\>]*?)href\="misc.php\?mod\=tag"([^\>]*)\>/i';
			$_G['setting']['output']['preg']['replace']['xugui_tag_top']='<a$1href="tag_0.html"$4>';
			$_G['setting']['output']['preg']['search']['xugui_tag']='/<a([^\>]*?)href\="misc.php\?mod\=tag&(amp;)?id\=(\d+?)"([^\>]*)\>/i';
			$_G['setting']['output']['preg']['replace']['xugui_tag']='<a$1href="tag_$3.html"$4>';
			
		}
		if(!empty($this->custom_replace)){
			$replace_arr=explode("\r\n", $this->custom_replace);
			foreach ($replace_arr as $key=>$value){
				$temp_Arr=explode("->",$value);
				if(count($temp_Arr)!=2||empty($temp_Arr[0])||empty($temp_Arr[1])){continue;}
				$_G['setting']['output']['str']['search']['xugui_rep_'.$key]=$temp_Arr[0];
				$_G['setting']['output']['str']['replace']['xugui_rep_'.$key]=$temp_Arr[1];
			}
		}
		if($this->portal_cat_on&&!empty($_G['setting']['output']['preg']['search'])){
			$tab_domain=$_G['setting']['domain']['app']['portal']?$_G['setting']['domain']['app']['portal']:$_G['setting']['domain']['app']['default'];
			$_G['setting']['output']['preg']['search']['xugui_portal_cat']='/<a([^\>]*?)href\="portal.php\?mod\=list&(amp;)?catid\=(\d+?)"([^\>]*)\>/i';
			$_G['setting']['output']['preg']['replace']['xugui_portal_cat']='<a$1href="plist_$3.html"$4>';
			$_G['setting']['output']['preg']['search']['xugui_portal_cat_h']='/<a([^\>]*?)href\="http\:\/\/'.$_SERVER['HTTP_HOST'].'\/portal\.php\?mod=list&(amp;)?catid=(\d+?)"([^\>]*)\>/i';
			$_G['setting']['output']['preg']['replace']['xugui_portal_cat_h']='<a$1href="http://'.$_SERVER['HTTP_HOST'].'/plist_$3.html"$4>';

		}
		if($this->redirect_on){
			$purl=$this->getreplace_Url();
			$purl=$this->checkDomain($purl);
			//现在的地址
			$turl=strpos($_SERVER['REQUEST_URI'],"http://")===0?$_SERVER['REQUEST_URI']:"http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];	
			if($turl!=$purl){
				header("HTTP/1.1 301 Moved Permanently");
				header("location: $purl");
				die();				
			}
		}		
	}

}


?>

  

转载于:https://www.cnblogs.com/lingzhao/p/4513319.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值