Ahoj,
já jsem nakonec SEO odkazy na svém webu zprovoznil následujícím způsobem:
do view.php
include_once("seolink.php");
// test na pritomnost promenne $cisloclanku
if (!isset($GLOBALS["cisloclanku"])):
echo "<html><body><p align=\"center\" class=\"z\">".RS_VWERR1."<p></body></html>\n";
exit();
else:
$GLOBALS["cisloclanku"] = substr($GLOBALS["cisloclanku"],0,10);
$seolink = UdelejSeoLinkClankuB($GLOBALS["cisloclanku"]);
$url_link = $HTTP_SERVER_VARS["REQUEST_URI"];
if ($url_link != ("/".$seolink)) {
Header("HTTP/1.1 301 Moved Permanently");
Header("Location:".$GLOBALS["baseadr"].$seolink);
Header("Connection: close");
}
endif;
soubor seolink.php
<?php
function UdelejSeo ($titulek="")
{
// prevedu vse na maly pismena (A!=a!!!!), yneskodnim hackz a carky blby znaky nahradim "-" (pomlckous)
$titulek = strtolower($titulek);
$co = array("""," ", "/", "\\", "&", "?", "!", "@", "\$", "%", "^",
"*", "(", ")", "+", "~", ";", "'", "\"", ">", "<", "|", ",", ":",
"=", "´", "§", "[", "]", "{", "}", "¨", "ë", "ä", "`", "_",
"„","“","…");
$naco = array("-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-",
"-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-",
"-", "-", "-", "-", "-", "-", "-", "-", "e", "a", "-", "-",
"-", "-", "-");
// Nahradim nezadouci znaky v novem nazvu dle techto poli - trochu paranoia, nemyslite? :)
$titulek = str_replace($co,$naco,$titulek);
$diak ="ěščřžýáíéťňďúůóöüĚŠČŘŽÝÁÍÉŤŇĎÚŮÓÖÜ ëä";
$diak.="\x97\x96\x91\x92\x84\x93\x94\xAB\xBB";
$ascii="escrzyaietnduuoouESCRZYAIETNDUUOOU-ea";
$ascii.="\x2D\x2D\x27\x27\x22\x22\x22\x22\x22";
$titulek = StrTr($titulek,$diak,$ascii);
$titulek = ereg_replace("[^[:alnum:]\.]","-",$titulek);
return $titulek;
}
function UdelejSeoLinkClanku ($tema = "", $link = "", $titulek="") {
return $link."-".UdelejSeo($tema)."-".UdelejSeo($titulek).".html";
}
function UdelejSeoLinkClankuB ($link = "") {
$query = "select ".$GLOBALS["rspredpona"]."clanky.titulek Ctitulek, ".$GLOBALS["rspredpona"]."topic.nazev Tnazev "
."from ".$GLOBALS["rspredpona"]."clanky, ".$GLOBALS["rspredpona"]."topic "
."where (tema = idt) AND (link = '".$link."')";
$dotaz = mysql_query($query, $GLOBALS["dbspojeni"]);
return $link."-".UdelejSeo(mysql_Result($dotaz,0,"Tnazev"))."-".UdelejSeo(mysql_Result($dotaz,0,"Ctitulek")).".html";
}
?>
a veškeré volání funkce "view.php?cisloclanku=" jsem nahradil za volání fce UdelejSeoLinkClankuB nebo UdelejSeoLinkClanku ve všech souborech redakčního systému ...
Do všech souborů, kam vkládáte volání fce UdelejSeoLinkClankuB vložte příkaz include_once("seolink.php");
(ono to není všude nutné, ale nic tím nezkazíte :-)
soubor .htaccess
RewriteEngine on
RewriteBase /
RewriteRule ^([0-9]*)-(.*).html$ view.php?cisloclanku=$1 [L,QSA]
nyní mi už SEO odkazy fungují na celém webu - v komentářích, ve výpisu vyhledávání, ...
Výsledek si můžete prohlédnout na [
http://www.maestroclub.cz]
Petr
--
Petr Souček
[http://www.maestroclub.cz]
Celkem upraveno 2×. Poslední úprava soucekp v 25.01.2006 12:03.