ékezetek a htaccess-ben
Sziasztok,
Jelenleg fejlesztés alatt van egy oldal, ahol lesz keresés is. Amire rákeresnek bekerül az url-be, a találatokat megjelenítő oldalon innen olvassa ki, és ezután escapeli a db lekérdezéshez (post helyett js-el van átírányítva, hogy szép legyen az url).
Az url: xxx.hu/kereses/tűz
Namármost ez xxx.hu/index.php?q=kereses/tűz valójában, csak htaccess segítségével használjuk a rövid url-t.
htaccess erre vonatkozó tartalma: RewriteRule ^([a-zA-Z0-9/_-]+)$ /index.php?q=$1 [L]
Ha ékezetes szóra keresünk az ugye bekerül az url-be, de ugye nem tölti be az oldalt, mert azok nincsenek a patternben.
Htaccesst hogyan lehet rávenni, hogy ékezetes karaktereket is kezeljen?
Gugliztam, de nem találtam semmi használhatót...
Eddig már próbáltam:
RewriteRule ^(*)$ /index.php?q=$1 [L]
RewriteRule ^(.*)$ /index.php?q=$1 [L]
De mindig 500-as Internal Server Error fogad...
Ha tudjátok a megoldást kérlek segítsetek.
Köszönöm
■ Jelenleg fejlesztés alatt van egy oldal, ahol lesz keresés is. Amire rákeresnek bekerül az url-be, a találatokat megjelenítő oldalon innen olvassa ki, és ezután escapeli a db lekérdezéshez (post helyett js-el van átírányítva, hogy szép legyen az url).
Az url: xxx.hu/kereses/tűz
Namármost ez xxx.hu/index.php?q=kereses/tűz valójában, csak htaccess segítségével használjuk a rövid url-t.
htaccess erre vonatkozó tartalma: RewriteRule ^([a-zA-Z0-9/_-]+)$ /index.php?q=$1 [L]
Ha ékezetes szóra keresünk az ugye bekerül az url-be, de ugye nem tölti be az oldalt, mert azok nincsenek a patternben.
Htaccesst hogyan lehet rávenni, hogy ékezetes karaktereket is kezeljen?
Gugliztam, de nem találtam semmi használhatót...
Eddig már próbáltam:
RewriteRule ^(*)$ /index.php?q=$1 [L]
RewriteRule ^(.*)$ /index.php?q=$1 [L]
De mindig 500-as Internal Server Error fogad...
Ha tudjátok a megoldást kérlek segítsetek.
Köszönöm
Nemrég
Igen, az urldecode-on már túl
Azon gondolkodtam, hogy hogyan lehetne olyat, hogy bármilyen karaktersorozatot átadjon, ne "egyenként" írjam be a megengedetteket a mintába.
De azt meg csak a *-al kéne, de az meg nem akar menni.
Szerk: Meg akkor legalább működne mindenféle karakterrel, mert tuti lesz olyan barbár aki már csak szórakozásból is |-re keres :D
Szerk #2: ideiglenesen sikerült megoldanom:
RewriteRule ^kereses/(.*)$ /index.php?q=kereses/$1 [L]
RewriteRule ^([a-zA-Z0-9/_-]+)$ /index.php?q=$1 [L]
Érdekes, hogy ha a kereses előtte van, akkor működik *-al, és bármit írhatsz mögé...
Ezt nem értem.
Feltétel
Pl.:
Az a lényeg, hogy a zárójelben OR-ral felsorolt dolgok lehetnek könyvtárak is és fájlok is, ha ezek a szövegek szerepelnek a kérésben, akkor nem lesz átírva. Ettől még az adott könyvtárakon belül rendelkezhetsz másképp, ha az Apache végrehajtja /dir a .htaccess-eket.
Köszönöm, délután
Igen, viszont xxx.hu/kereses/ize működött, xxx.hu/kereses/izé nem. Vagy amikor szóközt átírta %20-ra, az sem.
Az index.php-m úgy működik, hogy az első paramétert megnézni - itt a kereses. Ha létezik controller_kereses.php akkor azt tölti be, ha nem akkor automatikusan egy olyat, ami ellenőrzi, hogy van-e ilyen kategória. Mert biony van xxx.hu/Gazdasag is pl.
Tehát most működik rendesen, de azért szeretném mindenképp azt, hogy bármivel működjön, ne kelljen neki a keresest megadni, mert többnyelvű lesz az oldal... És angolul nem kereses lesz az url-ben, hanem search.
De köszönöm a választ, mihelyst tudom kipróbálom.
Tökéletes!
Nagyon nagyon köszönöm
Örülök, hogy sikerült
Vagy nyelvenként lesznek kontrollerek?!
Nem, a controller mindig
Beírod az url-t, ekkor feltételekkel kiválasztja a megfelelő utat legyen az url: (xxx.hu/a/b/c):
1. A c paraméter egy szám, és van annak mefelelő ID-jű tartalom
2. Az a paraméterre rákeres adatbázisban, és ha van annak megfelelő rovat akkor azt tölti be.
3. Ha van a és b egy szám akkor rovatnál lapoznak.
3. Egyiksem: 404.
És ez nagyon szépen is működik, a keresésen agyalok, mivel ott xxx.hu/kereses/keresett-szo/2 lesz ha lapoznak a találatoknál.
Nyilván itt a kereses (és az annak megfelelői pl szlovákul) úgy van tárolva, mint a rovatok (DB szerkezet lehetővé teszi a különbségtételt).
De arra is gondoltam, hogy xxx.hu/keresett-szo/2 legyen, és akkor ha nincs olyan kategória, akkor szimplán rákeres, akárki akármilyen badarságot pötyög oda.
Mivel itt többnyelvűségről van szó, így spec. kontrollerek nincsenek, csak egy controller_tartalom.php, amiben lezajlik a fenti összehasonlítás, és meghívja a megfelelő controllert, ami már nyelvtől függetlenül van megírva.
Pl a Gazdaság rovathoz 2 táblában van adat:
- közös - olyan név, amit az adminban használnak, általános infók
- nyelvfüggő - olyan név ami megjelenik, url, nyelv stb.
Dióhéjban ennyi.
De most melóban vagyok (ami nem programozás, így nem igazán tudok gondolkodni, remélem nem írtam hülyeséget :)
lapozás
Köszönöm, délután