WebToDate/Extenze/Extenze pro zamezení funkčnosti podvržených rewritovaných URL zpráv: Porovnání verzí

Z WebToDate
Skočit na navigaciSkočit na vyhledávání
Založena nová stránka: Category:WebToDate Extenze Category:Extenze ==Funkcionalita== WebToDate umožňuje pro zprávy [[../../Referenční/URL stránek#Možnosti změn ve tvaru URL strán…
 
 
(Nejsou zobrazeny 2 mezilehlé verze od stejného uživatele.)
Řádek 4: Řádek 4:
WebToDate umožňuje pro zprávy [[../../Referenční/URL stránek#Možnosti změn ve tvaru URL stránek|generování SEO-friendly URL]]. Místo standardního tvaru URL stránky pro zobrazení celého textu zprávy (''/scripts/detail.php?id=xxx'') se pak používá jiný tvar např. typu ''/cz/o-webtodate/technicke-informace/systemove-pozadavky/xxx/'', kde ''xxx'' je interní ID zprávy. Aby tento způsob práce s URL zpráv byl funkční, musí být tvary URL nastaveny v konfiguračním souboru WebToDate a musí být instalován a konfigurován modul www serveru podporující tuto funkčnost (např. [http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html mod_rewrite] www serveru Apache). Vygenerovaná URL se automaticky zapisují do pole '''Odkaz nadpisu''' databáze zpráv.
WebToDate umožňuje pro zprávy [[../../Referenční/URL stránek#Možnosti změn ve tvaru URL stránek|generování SEO-friendly URL]]. Místo standardního tvaru URL stránky pro zobrazení celého textu zprávy (''/scripts/detail.php?id=xxx'') se pak používá jiný tvar např. typu ''/cz/o-webtodate/technicke-informace/systemove-pozadavky/xxx/'', kde ''xxx'' je interní ID zprávy. Aby tento způsob práce s URL zpráv byl funkční, musí být tvary URL nastaveny v konfiguračním souboru WebToDate a musí být instalován a konfigurován modul www serveru podporující tuto funkčnost (např. [http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html mod_rewrite] www serveru Apache). Vygenerovaná URL se automaticky zapisují do pole '''Odkaz nadpisu''' databáze zpráv.


Tento systém sám o sobě ale nezajišťuje, že nejsou funkční jiná podvržená původně neplánovaná URL, tedy že kromě URL ''/cz/o-webtodate/technicke-informace/systemove-pozadavky/xxx/'' není zároveň funkční i ''/cokoli/co/zde-napisete/xxx/'', kde ''xxx'' je stále stejné ID zprávy. Tento problém řeší nasazení této extenze. Extenze kontroluje před zobrazením zprávy její URL tak, že jej porovnává s polem '''Odkaz nadpisu''' této zprávy. Pokud porovnání URL souhlasí nebo je URL ve výchozím tvaru, zpráva se zobrazí, v opačném případě je vyvolána chybová stránka.
Tento systém sám o sobě ale nezajišťuje, že nejsou funkční jiná podvržená původně neplánovaná URL, tedy že kromě URL ''/cz/o-webtodate/technicke-informace/systemove-pozadavky/xxx/'' není zároveň funkční i ''/cokoli/co/zde-napisete/xxx/'', kde ''xxx'' je stále stejné ID zprávy. Tento problém řeší nasazení této extenze. Extenze kontroluje před zobrazením zprávy její URL tak, že jej porovnává s polem '''Odkaz nadpisu''' této zprávy. Analogicky extenze porovnává i prezentační URL dynamických stránek s volaným URL.
 
Pokud porovnání URL souhlasí nebo je URL ve výchozím tvaru, zpráva se zobrazí, v opačném případě je vyvolána chybová stránka.


==Instalace==
==Instalace==
Řádek 17: Řádek 19:


==Reference==
==Reference==
Extenze kontroluje před zobrazením zprávy její URL tak, že jej porovnává s polem '''Odkaz nadpisu''' této zprávy. Pokud porovnání URL souhlasí nebo je URL ve výchozím tvaru (''/scripts/detail.php?id=xxx''), zpráva se zobrazí, v opačném případě je vyvolána http chyba 404 Not Found.
Extenze kontroluje  
 
* před zobrazením zprávy její URL tak, že jej porovnává s polem '''Odkaz nadpisu''' této zprávy
* před zobrazením dynamické stránky její URL tak, že jej porovnává s polem '''Prezentační URL''' ve vlastnostech stránky. Pokud se jedná o nějakou další stránku v rámci stránkování seznamu vloženého do stránky, kontroluje se, jestli se jedná o prezentační URL + nějaký suffix (který obsahuje parametry stránkování).
 
Pokud porovnání URL souhlasí nebo je URL ve výchozím tvaru (''/scripts/detail.php?id=xxx'' resp. ''/scripts/detail.php?pgid=xxx''), zpráva či stránka se zobrazí, v opačném případě je vyvolána http chyba 404 Not Found.


V konfiguračním souboru WebToDate může být nepovinně vložena konstanta '''ERROR_404''' obsahující cestu k chybové stránce. Pokud je tato konstanta definována, nevyvolá extenze přímo http chybu, ale zobrazí tuto chybovou stránku.
V konfiguračním souboru WebToDate může být nepovinně vložena konstanta '''ERROR_404''' obsahující cestu k chybové stránce. Pokud je tato konstanta definována, nevyvolá extenze přímo http chybu, ale zobrazí tuto chybovou stránku.
Extenzi je dále možno přepnout do režimu, kdy v případě záporného výsledku kontroly nevyvolá chybu 404 Not Found, ale provede přesměrování na URL z pole '''Odkaz nadpisu''' resp. '''Prezentační URL'''. V konfiguračním souboru WebToDate ''[[../../Referenční/Konfigurace WebToDate#Globální konfigurace WebToDate|global.php]]'' lze pro tento případ přidat konstantu REWRITE_CHECK_REDIRECT. Pokud konstanta není definována nebo je nastavena na hodnotu ''false'', extenze vyvolává chybu 404, pokud je konstanta nastavena na hodnotu ''true'', provádí se přesměrování.

Aktuální verze z 15. 6. 2011, 15:04

Funkcionalita

WebToDate umožňuje pro zprávy generování SEO-friendly URL. Místo standardního tvaru URL stránky pro zobrazení celého textu zprávy (/scripts/detail.php?id=xxx) se pak používá jiný tvar např. typu /cz/o-webtodate/technicke-informace/systemove-pozadavky/xxx/, kde xxx je interní ID zprávy. Aby tento způsob práce s URL zpráv byl funkční, musí být tvary URL nastaveny v konfiguračním souboru WebToDate a musí být instalován a konfigurován modul www serveru podporující tuto funkčnost (např. mod_rewrite www serveru Apache). Vygenerovaná URL se automaticky zapisují do pole Odkaz nadpisu databáze zpráv.

Tento systém sám o sobě ale nezajišťuje, že nejsou funkční jiná podvržená původně neplánovaná URL, tedy že kromě URL /cz/o-webtodate/technicke-informace/systemove-pozadavky/xxx/ není zároveň funkční i /cokoli/co/zde-napisete/xxx/, kde xxx je stále stejné ID zprávy. Tento problém řeší nasazení této extenze. Extenze kontroluje před zobrazením zprávy její URL tak, že jej porovnává s polem Odkaz nadpisu této zprávy. Analogicky extenze porovnává i prezentační URL dynamických stránek s volaným URL.

Pokud porovnání URL souhlasí nebo je URL ve výchozím tvaru, zpráva se zobrazí, v opačném případě je vyvolána chybová stránka.

Instalace

Do souboru config/_preprocess_inc.php vložte následující kód:

// - extenze Rewrite - kontrola URL
$arrModules[] = 'rewrite/_check_pre_inc.php';

Ujistěte se, že v instalaci WebToDate existuje soubor /scripts/modules/rewrite/_check_pre_inc.php.

Reference

Extenze kontroluje

  • před zobrazením zprávy její URL tak, že jej porovnává s polem Odkaz nadpisu této zprávy
  • před zobrazením dynamické stránky její URL tak, že jej porovnává s polem Prezentační URL ve vlastnostech stránky. Pokud se jedná o nějakou další stránku v rámci stránkování seznamu vloženého do stránky, kontroluje se, jestli se jedná o prezentační URL + nějaký suffix (který obsahuje parametry stránkování).

Pokud porovnání URL souhlasí nebo je URL ve výchozím tvaru (/scripts/detail.php?id=xxx resp. /scripts/detail.php?pgid=xxx), zpráva či stránka se zobrazí, v opačném případě je vyvolána http chyba 404 Not Found.

V konfiguračním souboru WebToDate může být nepovinně vložena konstanta ERROR_404 obsahující cestu k chybové stránce. Pokud je tato konstanta definována, nevyvolá extenze přímo http chybu, ale zobrazí tuto chybovou stránku.

Extenzi je dále možno přepnout do režimu, kdy v případě záporného výsledku kontroly nevyvolá chybu 404 Not Found, ale provede přesměrování na URL z pole Odkaz nadpisu resp. Prezentační URL. V konfiguračním souboru WebToDate global.php lze pro tento případ přidat konstantu REWRITE_CHECK_REDIRECT. Pokud konstanta není definována nebo je nastavena na hodnotu false, extenze vyvolává chybu 404, pokud je konstanta nastavena na hodnotu true, provádí se přesměrování.