Autor Zpráva
mich
Profil *
Prosím o radu.
používám na stránkách www.bazeny-jimky-septiky.cz ne moc dobry styl sdres tj.
http://www.bazeny-jimky-septiky.cz/index.php?stranka=bazeny
a nechci to měnit protože jsme ve ve vyhledávačích docela vysoko a stránky mají ranky. Jde hlavně o to že například etarget na mě odkazuje takto
http://www.bazeny-jimky-septiky.cz/index.php?stranka=bazeny&utm_source=etarget&utm_medium=cpc&utm_campaign=etarget
a přitom se zobrazí ta sama stránka.
Chtěl bych prosím poradit jak můžu asi pomocí rewrite vyřešit problém techto dlouhých duplicitních stránek.
Davex
Profil
Pomocí mod_rewrite by šlo přesměrovat na URL bez parametrů, ale pak by se ve statistikách návštěvnosti mohlo přijít o přesné měření kampaně. V tomto případě by asi bylo lepší použít <link rel="canonical">.
mich
Profil *
Vůbec nepotřebuju měřit kampaň tu měří etarget. jak by to šlo aby to hlavně vyhledávače pochopili správně. teď mám tyto stranky v site:www.bazeny-jimky-septiky.cz a jsou duplicitní tak aby mě google neshodil.
mich
Profil *
jo a díky za odpověď Davexi
kubik
Profil
Chápu to správně, že chceš z té dlouhé adresy, když na ni někdo klikne, odříznout vše, co je za stranka=bazeny, takže to ten uživatel v adresním řádku uvidí už zkrácené?

Pokud ano, tak mám takový matný pocit, že něco podobného se dá pomocí .htaccess a mod_rewrite dosáhnout za použití regulárních výrazů. Nikdy jsem to nezkoušel, ani si nejsem jistý, že to jde. Zkus googlit rewrite regular expression.

A hlavně, jestli na to přijdeš, tak sem prosím hoď nějaký závěr.
glerak
Profil *
jen na okraj, když už tady koukám - z mod_rewrite jeho regulárních výrazů jse tak zmatenej a nešťastnej, že teď jdu cestou parsování adresní řádky v PHP, a případné přesměrování také v PHP.
Tak v .htaccess mám
# Veškeré parametry URL předám index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

a v PHP něco jako


function URLParse() {
  $url = $_SERVER['REQUEST_URI'];
  Debug("Adresní řádek: ".$url);
  if ($url == "/") {
    $_GET[uvod] = true;
    Debug("Úvodní stránka (žádné parametry): ".$url);
  }
  else if (preg_match('/^\/(zasahy|cviceni|udalosti)(-(\d{4}))?\.html$/', $url, $par_url)) {
    $_GET[tema] = $par_url[1];
    if ($par_url[3] != NULL) $_GET[rok] = $par_url[3];
  else {
    Debug("Neznámý formát v adresní řádce.");
    HTTPRedirect('404', 'Parametry adresního řádku se nepodařilo rozklíčovat - odkaz neexistuje.');
  }

}

a
Function HTTPRedirect($param, $text) {
  switch ($param) {
    case "404":
      header("HTTP/1.1 404 Not Found");
      header("Connection: close");
      $_GET[error404] = true;
      $_GET[error404_text] = $text;
      Debug("Přesměrováno na chybu 404 - ($param -> $text)");
      Sablona();  // kvůli vypsání errorové stránky, a taky debug informací před ukončením skriptu
      Die();
    case "301":
      Debug("Redirecting 301 ($param -> $text)");
      header("HTTP/1.1 301 Moved Permanently");
      header("Location: $text");
      header("Connection: close");
      Die('<p style="color: red; font-weight: bold;">Nepodařilo se přesměrovat stránku (parametr fce je "'.$param.' -> '.$text.'"</p>');


Zdá se mi o jednodušší, přehlednější a hlavně variabilnější a snáze testovatelné.
Davex
Profil
mich:
Nejdřív by bylo dobré, prozkoumat administraci reklamní kampaně, zda nejde vypnout odkazování na URL s parametry utm_*. Netuším, jak je na tom Etarget.

Pokud to vypnout nejde, tak lze na serveru přesměrovat pomocí pravidel mod_rewrite z článku NaH1: Vyhněte se duplicitám při měření kampaní. Aby nebylo cílem přesměrování URL s mřížkou, tak stačí z pravidel odstranit #%1? a #%2.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0