function redirection($location, $script = false) { if (!$script) { header("HTTP/1.1 301 Moved Permanently"); header("Location: ".str_replace("&", "&", $location)); exit; } else { echo "\n"; exit; } } //^ чуть модифицированная стандартная функция, дабы отдавать заголовок 301 редиректа function mytext($text) { $text = strtolower($text); $special = array( '"','&','&','?','!','.',',',':',';','*','(',')','{','}','[',']','%','#','№','@','$','^','-','+','/','\\','=','|','"','\'', 'А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я', 'а','б','в','г','д','е','ё','з','и','й','к', 'л','м','н','о','п','р','с','т','у','ф','х', 'ъ','ы','э',' ','ж','ц','ч','ш','щ','ь','ю','я'); $normal = array('','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_', 'a','b','v','g','d','e','e','zh','z','i','y','k','l','m','n','o','p','r','s','t','u','f','h','ts','ch','sh','shch','j','i','','e','yu','ya', 'a','b','v','g','d','e','e','z','i','y','k', 'l','m','n','o','p','r','s','t','u','f','h', 'j','i','e','_','zh','ts','ch','sh','shch', '','yu','ya'); $text = str_replace($special, $normal, $text); return preg_replace(array('/[^a-zA-Z0-9 -]/', '/[ -]+/', '/^-|-$/'), array('', '-', ''), $text); } //^ у меня эта функция транслита чуть изменена, вы берите ту, которую используете в самом плагине //artice if (preg_match("#\/articles\.php\?article_id\=([0-9]+)#i", FUSION_REQUEST, $matches)){ //^ищем совпадения в урле, если найдены- перенаправляем $result = dbquery("SELECT article_subject FROM ".DB_ARTICLES." WHERE article_id=".(isnum($matches[1]) ? $matches[1] : 0)." LIMIT 1"); if (dbrows($result)){ $data = dbarray($result); redirection(BASEDIR."article".$matches[1]."-".mytext($data['article_subject']).""); } } //article cat if (preg_match("#\/articles\.php\?cat_id\=([0-9]+)#i", FUSION_REQUEST, $matches)){ $result = dbquery("SELECT article_cat_name FROM ".DB_ARTICLE_CATS." WHERE article_cat_id=".(isnum($matches[1]) ? $matches[1] : 0)." LIMIT 1"); if (dbrows($result)){ $data = dbarray($result); redirection(BASEDIR."articlecat".$matches[1]."-".mytext($data['article_cat_name']).""); } }