WebToDate/Extenze/Extenze pro zamezení funkčnosti podvržených rewritovaných URL zpráv: Porovnání verzí
| Řá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í.