Autor Zpráva
blizzboz
Profil
potreboval by som z takejto url:

http://www.nieco.sk/sk/názov-stránky

pomocou mod rewrite vytvoriť takúto:

http://www.nieco.sk/index.php?id=názov-stránky&lang=sk

viete mi poradiť regulárny výraz?
Cup
Profil
RewriteRule ^([A-Za-z]+)/([A-Za-z0-9-]+)$ /index.php?id=$2&lang=$1 [L,QSA]
blizzboz
Profil
A funguje to aj s diakritikou? lebo A-Za-z sú len písmená anglickej abecedy
Cup
Profil
poc by si daval do url diakritiku?
blizz_boz
Profil
no len tak aby to bolo po slovensky na svojich stránkach bežne používam diaritiku napr.:

http://ipremiere.eu/čo-to-znamená-tfp.html
Joker
Profil
blizzboz:
A funguje to aj s diakritikou?
Nefunguje, na diakritiku by bylo potřeba tam ještě vyjmenovat přípustná písmena s diakritikou.
blizz_boz
Profil
takže takto?:

RewriteRule ^([A-Za-z]+)/([A-Za-ZV-9-áÁéÉíÍóÓúÚýÝčČďĎťŤňŇľĽšŠťŤžŽĺĹŕŔäÄôÔŮůěĚřŘ]+)$ /index.php?id=$2&lang=$1 [L,QSA]
blizzboz
Profil
keď som tam dal toto:

RewriteEngine on
RewriteRule ^([A-Za-z]+)/([A-Za-z0-9-áÁéÉíÍóÓúÚýÝčČďĎťŤňŇľĽšŠťŤžŽĺĹŕŔäÄôÔŮůěĚřŘ]+)$ /index.php?id=$2&lang=$1 [L,QSA]


tak to vyhadzuje Internal Server Error
blizzboz
Profil
no tak som to vyriešil aj sám:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z]+)/(.*)$ index.php?id=$2&lang=$1 [L,QSA]


ale teraz mám ďalší problém napr mám obrázok:

<img src="images/obrazok.jpeg" width="83" height="63" alt="obrazok">


správne umiestnenie obrázku má byť

http://www.nieco.sk/images/obrazok.jpeg


predtým to tam aj našlo ale teraz prehliadač hľadá obrázok na adrese:

http://www.nieco.sk/sk/images/obrazok.jpeg


skúšal som použiť tag base <base href="../"> ale ten nefungoval v IE7 a IE8

viem že sa to dá riešiť cez mod rewrite ale neviem ako

potreboval by som aby keď bude prehliadač sťahovať súbor z adresy:

adresar/images/obrazok.jpeg

aby mu server podstrčil súbor

images/obrazok.jpeg

ďalšie riešenie by bolo používať absolútne adresy ale to je zbytočne pracné a neflexibilné.
Medvídek
Profil
blizzboz:
A nebude stačit toto:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
blizzboz
Profil
Medvídek: nestačí to :( to funguje len keď zadáš adresu existujúceho súboru, tak na ten sa nepoužije prepisovanie url napr. zadáš:
http://www.nieco.sk/images/obrazok.jpeg

tak sa url neprepíše na:
index.php?id=obrazok.jpeg&lang=images

ale sa načíta obrázok.
Yur4Y
Profil
A čo tak použiť cestu /images/obrazok.jpeg?
blizzboz
Profil
Yur4Y:

dá sa použiť cesta:

../images/obrazok.jpeg


ale to sú zbytočné dve bodky a lomítko navyše, radšej by som to riešil tak že keď server má poslať klientovi obrázok z adresy

sk/images/obrazok.jpeg


tak mu podstrčí obrázok z adresy

images/obrazok.jpeg


nedá sa to nejako cez mod_rewrite?
blizzboz
Profil
no tak nakoniec som to prerobil takto:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*)\(([A-Za-z]+)\)$ index.php?id=$1&lang=$2 [L,QSA]


adresa bude mať tvar:

http://www.nieco.sk/názov-stránky(sk)


v zátvorke bude jazyková mutácia
Toto téma je uzamčeno. Odpověď nelze zaslat.