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í
Řá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'''. V konfiguračním souboru WebToDate ''config/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í.
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 ''config/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í.

Verze z 15. 6. 2011, 08:34

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 config/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í.