Итак вопрос по редиректу внешних ссылок. Есть такой бот как maskurl. в принципе работает, но остается вопрос с внутренними ссылками. Получается что-то типа option=com_content&task=view&id=46&Itemid=34 ссылка не открывается (из-за "amp;" в теле. видать при расшифровке выдает...), вернее открывается но пишет что у вас нет прав доступа к этой страничке. Если же убрать все amp; то все будет ок. Может можно убрать вообще шифровку чтоб он просто добавлял адрес к моему, типа http://mysite.com/index.php?option=goto=anylink.com тоесть без всякой шифровки? Или же добавить условие чтоб не обрабатывал ссылки начинающиеся с $mosConfig_live_site..... тут уже было обсуждение http://forum.joom.ru/index.php?topic=1755.msg56182
Re: редирект внешних ссылок Боже мой, неужели я это писал Код (CODE): defined( '_VALID_MOS' ) or die( 'Restricted access' ); $_MAMBOTS->registerFunction( 'onPrepareContent', 'maskUrl' ); function maskUrl( $published,& $row, &$params, $page=0 ) { global $database; if (!$published) return true; preg_match_all("#<a(.+)>(.+)</a>#U",$row->text,$mt); foreach($mt[1] as $ina) { preg_match_all("#(.*)href=([^ >]+)(.*)#",$ina,$mt2); $mu = maskUrl2($mt2[2][0]); if ($mu) $row->text = str_replace($mt2[0][0],$mt2[1][0]."href=\"".$mu."\"".$mt2[3][0],$row->text); } return true; } function maskUrl2($url) { global $mosConfig_live_site; if (in_array($url{0},array('"',"'"))) $url = substr($url,1); if (in_array($url{strlen($url)-1},array('"',"'"))) $url = substr($url,0,strlen($url)-1); $pos1 = strpos($url,$mosConfig_live_site); $pos1 = strpos($url,"index.php"); if ($pos1!==false || $pos2!==false) return false; $url = $mosConfig_live_site.'/index2.php?no_html=1&option=com_maskurl&url='.strrev(base64_encode($url)); return $url; } Попробуй это, вдруг сработает.
Re: редирект внешних ссылок Да, именно ты Все работает большое спасибо, только пару нюансов Вот код. <?PHP defined( '_VALID_MOS' ) or die( 'Restricted access' ); $_MAMBOTS->registerFunction( 'onPrepareContent', 'maskUrl' ); function maskUrl( $published,& $row, &$params, $page=0 ) { global $database; if (!$published) return true; preg_match_all("#<a(.+)>(.+)</a>#U",$row->text,$mt); foreach($mt[1] as $ina) { preg_match_all("#(.*)href=([^ >]+)(.*)#",$ina,$mt2); $mu = maskUrl2($mt2[2][0]); if ($mu) $row->text = str_replace($mt2[0][0],$mt2[1][0]."href=\"".$mu."\"".$mt2[3][0],$row->text); } return true; } function maskUrl2($url) { global $mosConfig_live_site; if (in_array($url{0},array('"',"'"))) $url = substr($url,1); if (in_array($url{strlen($url)-1},array('"',"'"))) $url = substr($url,0,strlen($url)-1); $pos1 = strpos($url,$mosConfig_live_site); $pos2 = strpos($url,"index.php"); if ($pos1!==false || $pos2!==false) return false; $url = $mosConfig_live_site.'/index2.php?no_html=1&option=com_maskurl&url='.strrev(base64_encode($url)); return $url; } ?>