Autor Zpráva
RAY
Profil
Zdravim všechny,
Začal jsem si hrát se SEO a na řadu přišlo i generování URL adres.

Zajímaly by mě dvě věci:

Protože CMS ve kterém to budu realizovat je poněkud staticky navržen mám následující problémy - zajímá mě nakolik to negativně ovlivní výsledek.

1) Všechny odkazy na webu jsou ve styslu skript.php?promenna=X&promennydve=Y

Nemohu s tím nic udělat, a proto mě v rámci lepší indexace googlem napadlo, že pokud by návštěvník přistoupil k skript.php?promenna=X&promennydve=Y presmeroval bych ho pomocí HTTP hlavičky na /neco/nekde/nazev/detail/ :)

Zajímá mě jestli to např googlu pomůže (samozřejmě ta stránka bude dostupná i tim druhym způsobem).

2) Jak už jsem napsal, ten CMS je poněkud statický, a proto všechny URL budou moci být pouze ve tvaru http://neco.com/?/neco/nekde/nazev/detail/ (ten otazník je tam schválně).

Tady mě zajímá nakolik ten otazník v URL odvede negativní práci...

Vřelé díky komukoliv :)
Marty
Profil
A možnost použít mod_rewrite nemáš?
Některé vyhledavače můžou mít problémy s url s otazníky (proměnnými). Třeba mě odmítlo Jyxo indexovat všechny adresy s proměnou v url (tedy otazníkem).
Martin Kuželka
Profil
Marty, Jyxo normálně stránky mající v url proměnnou indexuje...
RAY
Profil
A možnost použít mod_rewrite nemáš?

Nechtěl jsem si tady dělat nějakou spam reklamu, ale je to takovej hojně rozšířenej free CMS systém, kterej chci, aby měl co nejnižší požadavky - tzn. aby fungoval i tam, kde neni mod_rewrite.
Marty
Profil
Martin Kuželka
ale třeba tady ano: http://jyxo.cz/s?s=site%3Awww.najdipraci.cz&d=cz
Yuhů
Profil
> Jyxo normálně stránky mající v url proměnnou indexuje...

tam je spíš problém v tom, že je pomaleji (asi 3x) aktualizuje

> Zajímá mě jestli to např googlu pomůže
> (samozřejmě ta stránka bude dostupná i tim druhym způsobem)

Pokud tam nebude přesměrování jedné stránky na druhou, tak ne, nepomůže. Pak je podstatné to, na co povedou odkazy. A pokud tam přesměrování bude, tak hraje roli jenom URL té výsledné stránky, nikoli té přesměrované.
Marty
Profil
Problém je, že dříve se mi stránky s proměnou alespoň rámcově indexovaly.
Momentálně dokonce nenajdu ani jednu indexovanou stránku (http://jyxo.cz/s?s=site%3A+www.martysbloq.wz.cz&d=cz). Ve výsledcích vyhledávání se ale vyskytuji dále.
Pravdou je, že jsem před nedávnem měnil tak trochu strukturu webu, takže v tom má Jyxo asi guláš.
RAY
Profil
Takže v tuto chvíli je již systém schopen přesměrovávat ze skript.php?promenna=X&promennydve=Y na http://neco.com/?/neco/nekde/nazev/detail/


Moje další dvě otázky:
1) Je vhodné přesměrovávat (v tomto případě) pomocí HTTP 301?
2) V té nové URL bude pravděpodobně nutné na konec přidat pár čísel (/1/2.. aby byla jistota, že se vše zpětně detekuje - jistota kvůli mnoha možnostem), jak těchto "pár čísel" ovlivní výsledek?
Yuhů
Profil
> Moje další dvě otázky:

na nové otázky je možná lepší zakládat nová témata, ale budiž

> 1) Je vhodné přesměrovávat (v tomto případě) pomocí HTTP 301?

rozhodně ano

> 2) V té nové URL bude pravděpodobně nutné na konec přidat pár čísel (/1/2.. aby byla jistota,
> že se vše zpětně detekuje - jistota kvůli mnoha možnostem), jak těchto "pár čísel" ovlivní výsledek?

myslím, že nijak
RAY
Profil
Právě jsem dodělal plugin rozhraní pro SEO jednotlivých modulů systému. Výsledek je následující:

Např. místo:
http://united-nuke.openland.cz/modules.php?name=Content&pa=showpage&pi d=20

generuje:
http://united-nuke.openland.cz/?/content/plan-vyvoje-a-vlastnosti-prod uktu/plan-vyvoje-systemu-united-nuke/item/cGF8c2hvd3BhZ2V8cGlkfDIw


(odkazy fungují oba, ale ten SEO engine pro přesměrování mám zatím jen pro adminy (google protection :) ...)


Celé se mi to ale nezdá... Skutečně to stojí za to? Pomůže ta výsledná adresa nebo spíše uškodí?

A poslední otázka, je dobré do hlavičky cílové stránky vložit HTTP/1.1 302 Found?

Studoval jsem lecos o SEO, ale takový specifický problém jako je ten můj (přesměrování, otazník v URL) se nějak veřejně neřeší :) A nebo začínám takhle v noci lamit :)
llook
Profil
Na cílové stránce nechej 200 Ok.
302 se AFAIK používá pro dočasné přesměrování. Když dáš v PHP header("Location: ...") a nevyplodíš žádný stavový kód HTTP, tak Apache implicitně dává 302.

Otazník v URL by snad vadit neměl, ale kdyby ses ho chtěl zbavit, tak to jde i bez mod_rewrite.
Pokud existuje /index.php a uživatel požaduje /index.php/abcdef/aaa, pak Apache vrátí výsledek /index.php. Přitom ten skript může využívat proměnnou $_SERVER['PATH_INFO'], obsahující to "/abcdef/aaa".
Přípony .php se zbavíš Apache direktivou ForceType. Prostě skript uložíš bez přípony a v souboru .htaccess určíš, že ten soubor je typu PHP:
<Files "content">

ForceType application/x-httpd-php
</Files>

Takhle to řeší například Nucleus nebo Textpattern.
RAY
Profil
Na cílové stránce nechej 200 Ok.

Od 200 ok mě právě odradil tenhle příspěvek http://interval.cz/discussion-read.asp?disc=3694#story32900 Rád bych ho použil, ale kdo má pravdu? :)
...může využívat proměnnou $_SERVER['PATH_INFO']
Dobrý nápad :) Ono by šlo použít vlastně i $_SERVER['PHP_SELF'], ovšem pak nastane v mém případě podobný problém jako s užitím .htaccess s ForceType - viz níže.

Takhle to řeší například Nucleus nebo Textpattern.
Na Nucleus jsem koukal, ale pokud to udělám pomocí .htaccess s ForceType, tak se vlastně stránka ocitne v několika dalších podaresářích a přestanou chodit relativní odkazy (nemohu to nijak vyřešit)...
RAY
Profil
Tak update, trochu jsem se po probuzení ukvapeně vyjádřil :) Ono by to asi řešilo použití tohoto: http://www.jakpsatweb.cz/html/hlavicka.html#base
llook
Profil
Kódy začínající dvojkou značí, že požadavek byl v pořádku přijat, pochopen a akceptován. 200 Ok, znamená, že to co požadujeme je posláno v odpovědi.
Kódy začínající trojkou jsou tzv. přesměrovávací, indikují, že klient musí vykonat ještě nějakou akci ke splnění požadavku a to většinou znamená přesměrování.

Kód 302 popisuje nejvyšší autorita (RFC 2616, str. 61) takto:
Požadovaný zdroj se dočasně nachází pod odlišným URI. Přestože může být nutné přesměrování, klient by měl stále používat URI tohoto požadavku i pro budoucí požadavky. Tato odpověď je kešovatelná pouze pokud je to indikováno polem Cache-Control nebo Expires.
Dočasné URI by mělo být dáno polem Location v odpovědi. Pokud metoda požadavku nebyla HEAD, entita odpovědi by měla obsahovat krátkou hypertextovou poznámku s hyperlinkem na nové/á URI.

Server php.net to například používá pro přesměrování na zrcadlící servery. Když požaduješ php.net/něco, tak tě to tímto kódem přehodí třeba na cz2.php.net/něco.

Ty potřebuješ to, aby se klient (vyhledávač) při požadavku na skript.php?promenna=X&promennydve=Y dověděl, že se požadovaný zdroj trvale přesunul na /?/neco/nekde/nazev/detail/. Aby zahodil tu starou adresu a propříště už použil rovnou tu novou. K tomu se používá 301.
Cílová stránka s novou adresou by ale už měla vracet 200 Ok značící v pořádku vyřízený požadavek, stejně jako třeba statické stránky.
printf
Profil *
Otazník v URL by snad vadit neměl, ale kdyby ses ho chtěl zbavit, tak to jde i bez mod_rewrite.
Pokud existuje /index.php a uživatel požaduje /index.php/abcdef/aaa, pak Apache vrátí výsledek /index.php. Přitom ten skript může využívat proměnnou $_SERVER['PATH_INFO'], obsahující to "/abcdef/aaa".


Co se musí udělat aby to takhle fungovalo?
Používám Apache 1.3 na win32, u mne to zřejmě logicky hledá soubor "aaa" v adresáři "/index.php/abcdef/", který samozřejmě neexistuje, takže výsledkem je dokonce Internal Server Error. Jinak pokud volám ten "/index.php" tak $_SERVER['PATH_INFO'], resp. $HTTP_SERVER_VARS['PATH_INFO'] obsahuje "/index.php"

Zřejmě to bude nastavením či verzí Apache, jenže já bych rád aby toto řešení bylo univerzální i pro případ že se k nastavování Apache nedostanu a verze bude daná.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0