Re: Jak na SEO odkazy pomoci .htaccess a Rewrite
Zaslán uživatelem/kou:
e.l.e.n.k.a (IP adresa zaznamenána)
Datum: 2007-01-10, 17:50
soucekp napsal/a:
-------------------------------------------------------
> 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
>
>
> 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
>
> Petr
>
> --
> Petr Souček
>
>
>
>
>
> Celkem upraveno 2×. Poslední úprava soucekp v
> 25.01. 12:03.
Ahoj
Tuto úpravu označil pa3k jako nejlepší možnou. Nemůžu nic víc než souhlasit. Jen bych měla jeden dotaz. Funguje úprava i v novém phpRS 2.8.1?
Ráda bych přešla na 2.8.1, ale pokud tam nefunguje tato SEO úprava, tak by pro mě nová verze postrádala smysl.
Předem díky za odpověď