Zadejte hledaný výraz...

.htaccess a diakritika

Lukáš
verified
rating uzivatele
27. 6. 2011 11:06:58
Zdravím,
mám .htaccess, funguje přesně tak jak bych chtěl...ale pokud je v URL diakritika, tak to nefunguje. Kód vypadá takhle:
Co to dělá: divné dlouhé URL, kde je nějaký parametr "query" a pár dalších to přepíše do hezkého URL http://subdomain.domain.com/to co bylo v parametru query. První dva řádky překopou adresu, aby vypadala hezky a třetí řádek skrytě zavolá dotaz s parametrem query v URL. To je všechno super a funguje to dobře, ale jakmile je v odkazu dikritika, tak je průšvih. Vypadá to takhle: když vytvořím hyperlink třeba na:
http://subdomain.domain.com/index.php?parameter=0&query=ščř&search=1
tak po kliknutí se v prohlížeči zobrazí adresa:
http://subdomain.domain.com/%25C5%25A1%25C4%258D%25C5%2599
...a je to v pytli. Uměl byste někdo poradit jak to zařídit, aby nebyl problém s tím dekódováním URL? Díky za nápady...
27. 6. 2011 11:06:58
https://webtrh.cz/diskuse/htaccess-a-diakritika#reply649515
Macecha
verified
rating uzivatele
(17 hodnocení)
27. 6. 2011 11:14:25
mít odkazy bez diakritiky ? :D s diakritikou by to mělo jít taky udělat, ale dělá to zbytečně bordel
27. 6. 2011 11:14:25
https://webtrh.cz/diskuse/htaccess-a-diakritika#reply649514
Očistit odkazy (např. pomocí JS) od diakritiky, používat URL s diakritikou je hloupost.
27. 6. 2011 11:23:13
https://webtrh.cz/diskuse/htaccess-a-diakritika#reply649513
hm
verified
rating uzivatele
(20 hodnocení)
27. 6. 2011 12:19:36
tak wikina taky pouziva diakritiku a neni s tim problem, myslim ze rady nepouzivat diakritku muzes vcelku v pohode ignorovat... ale bude to obnaset par veci :) tvuj problem je v tom, ze znamena skutecne jen ciste znaky... takze v pripade ze ze am mas znaky s diakritikou tak timto pravidlem eprojdou ... samozrejme kodovani url %25 atd se nevyhnes to je normalni chovani, ale vubec nevadi ze se deje... jen musis pravidla pouzivat nikoliv ale
proste tam musi byt vsechny znaky s diakritikou vypsane
27. 6. 2011 12:19:36
https://webtrh.cz/diskuse/htaccess-a-diakritika#reply649512
Petr
verified
rating uzivatele
(9 hodnocení)
27. 6. 2011 13:53:24
Napsal Aleš Jiříček;670519
tak wikina taky pouziva diakritiku a neni s tim problem, myslim ze rady nepouzivat diakritku muzes vcelku v pohode ignorovat... ale bude to obnaset par veci :) tvuj problem je v tom, ze znamena skutecne jen ciste znaky... takze v pripade ze ze am mas znaky s diakritikou tak timto pravidlem eprojdou ... samozrejme kodovani url %25 atd se nevyhnes to je normalni chovani, ale vubec nevadi ze se deje... jen musis pravidla pouzivat nikoliv ale
proste tam musi byt vsechny znaky s diakritikou vypsane
naprosto presne.... protoze => a,b,c,d,e,f,g,h,i,j,k, ... a ne =>a,b,c,č,d,ď,e,ě, .... ;-) v tom je ten brouk
27. 6. 2011 13:53:24
https://webtrh.cz/diskuse/htaccess-a-diakritika#reply649511
Regulární výrazy mají bohužel s multibyte písmeny problémy. Jak píše Aleš, třída nezachytí diakritiku.
Místo třídy znaků použijte buď tečku . (vše) nebo negativní třídu (vše kromě abc):
Pro zajímavost, PHP od verze 5.1 umožňuje zachytit předdefinované třídy multibyte znaků
http://cz.php.net/manual/en/regexp.reference.unicode.php
A Perl má práci s unicode regulárními výrazy dobře propracovanou
http://perldoc.perl.org/perlunicode.html#Unicode-Character-Properties
Apache používá nějakou horší implementaci, která tohle neumí.
27. 6. 2011 15:18:26
https://webtrh.cz/diskuse/htaccess-a-diakritika#reply649510
jarin001
verified
rating uzivatele
(37 hodnocení)
27. 6. 2011 15:34:35
Já jsem řešil podobný problém, protože Seznam neuměl číst URL s diakritikou a přiřazoval jim nižší ranky.
Je to ale cca 2 týdny co Seznam provedl některé změny a dikritiku již umí.
Takže moje rada, nech tam diakritiku, můžeš si jen ublížit, protože "a" nebo "á" je rozdíl, z hlediska
vyhledávačů budeš mít nové adresy, jestli máš více stránek a web má historii, načekáš se než budou
tvoje nové adresy zaindexovány (Seznam několik týdnů), staré adresy budou 404.
Co se týká problému při zobrazování tak to už je věc pro programátora.
27. 6. 2011 15:34:35
https://webtrh.cz/diskuse/htaccess-a-diakritika#reply649509
Lukáš
verified
rating uzivatele
28. 6. 2011 09:13:08
Paráda, díky všem, tak teď jsem se posunul přesně o 50 %. Když se ten třetí řádek přepíše na třeba na
případně tak jak navrhoval Martin Schlemmer, tak ten řádek funguje. Čili když se zadá www.domena.cz/parametr, tak ten parametr se předělá do query ve querystringu a normálně se to provede. Nicméně ty první dva řádky nefungují. Máme teda třeba
Přičemž předpokládám, že to důležité je regex za parametrem query, tedy (*)&(+). No nicméně to by mělo být v pořádku a teoreticky by to mělo žrát diakritiku, vlastně je to napsané tak jak to napsal Martin S. No a pak by se to v pořádku mělo objevit v druhém řádku za %2 a provést redirect 301. Tedy když je v adrese ve query řekněme slovo "chrám", adresa by měla vypadnout http://subdomena.domena.com/chrám a pomocí třetího řádku se provést dotaz s querystringem. Jenže ups, nejede to - proti všem předpokladům. Když udělám odkaz na:
vypadne z toho
a hláška NOT FOUND. A sem zase v pytli:-(
Odstranění diakritiky, o tom už jsem taky přemýšlel, ale udělám to pouze pokud tohle zklame...prostě pokud to nedokážu(eme) sestavit, aby to jelo i s diakritikou...
28. 6. 2011 09:13:08
https://webtrh.cz/diskuse/htaccess-a-diakritika#reply649508
Pro odpověď se přihlašte.
Přihlásit