Например: Ссылка новости - http://php.ru/news/php-dlja-novichkov/16/ Теперь меняю id в адресной строке - http://php.ru/news/php-dlja-novichkov/12/ обновляется страница выходит нужная новость но в адресной строке выводимый заголовок не меняется. Нужно когда меняю id что бы обновлялся и заголовок в адресной строке. Например: Ссылка новости - http://php.ru/news/php-dlja-novichkov/16/ Когда поменял id должно быть так - http://php.ru/news/php-dlja-profi/12/ Код (Text): RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^news/([^/\.]+)/([^/\.]+)?/$ read-news.php/?news&name=$1&post=$2 [L] RewriteCond %{QUERY_STRING} name=([^/\.]+)&post=([^/\.]+)$ RewriteRule ^read-news\.php$ news/%1/%2/? [R=301,L] PHP: function translit($text) { $translit = array( "А"=>"a","Б"=>"b","В"=>"v","Г"=>"g", "Д"=>"d","Е"=>"e","Ж"=>"j","З"=>"z","И"=>"i", "Й"=>"y","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n", "О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t", "У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"ts","Ч"=>"ch", "Ш"=>"sh","Щ"=>"sch","Ъ"=>"","Ы"=>"yi","Ь"=>"", "Э"=>"e","Ю"=>"yu","Я"=>"ya","а"=>"a","б"=>"b", "в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j", "з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l", "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r", "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h", "ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y", "ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya", "A"=>"a","B"=>"b","C"=>"c","D"=>"d","E"=>"e", "F"=>"f","G"=>"g","H"=>"h","I"=>"i","J"=>"j", "K"=>"k","L"=>"l","M"=>"m","N"=>"n","O"=>"o", "P"=>"p","Q"=>"q","R"=>"r","S"=>"s","T"=>"t", "U"=>"u","V"=>"v","W"=>"w","X"=>"x","Y"=>"y", "Z"=>"z"," "=>"-","«"=>"-","»"=>"-","`"=>"-", "!"=>"-","@"=>"-","#"=>"-","№"=>"-","$"=>"-", "%"=>"-","^"=>"-","&"=>"-","*"=>"-","("=>"-", ")"=>"-","_"=>"-","="=>"-","+"=>"-",","=>"-", "."=>"-",","=>"-",","=>"-","|"=>"-",":"=>"-", ";"=>"-" ); return strtr($text,$translit); } HTML: <a href="/news/<?=translit($news['title']) ?>/<?=$news['id'] ?>/"></a>
Это заголовок новости... Вот как тут заголовок И в url заголовок и в конце id --- Добавлено --- Может вообще я не тем путем пошел объясните как вообще подобное можно реализовать ?
если все меняется, а заголовок нет, логично предположить, что вы его жестко прописали в коде, например, $h1 = 'Моя новость'; покажите строку, которая выводит заголовок
А на самой то странице меняется заголовок после обновления страницы а в адресной строке нет... Вот код выводящий заголовок: PHP: $check = mysql_query("SELECT * FROM news WHERE id='$id_news'"); $news = mysql_fetch_assoc($check); HTML: <h2><?php echo $news["title"] ?></h2>
Где, то что то в коде упускаете, проверяйте, так же все правильно выводится: test.php <? $check = mysql_query("SELECT * FROM news WHERE id='.intval($_GET['post']); $news = mysql_fetch_array($check); $body = $news['title']; $body .= '<br>' . $news['description']; //описание echo $body;
Вы видимо не совсем меня поняли и сейчас все нормально выводится только в адресной строке чпу не меняется после смены id а страница обновляется и выводит содержимое данного id отправлял же пример... Вот смотрите фото
В адресной строке отображается только url, заголовок там не отображается. Если я вас правильно понял, вам нужен контроль за чпу, сверяйте $_GET['name'] c translit($news['title']), если не совпадает, то редирект на правильный url, типа if( $_GET['name'] != translit($news['title'])) header("location: правильный урл"); Имхо: чпу - бесполезно, хотите красивые снипеты в выдаче пс - используйте хлебные крошки
Спасибо! вроде ща работает как надо. PHP: if($_GET['name'] !== translit($news['title'])) { header('Location: http://test.ru/news/'.translit($news[title]).'/'.$id_news.'/'); }