Keresőben ékezetes betűk belső szerverhibát okoznak

vlezli képe

Sziasztok!

Nem mindennapi hibával találtam magam szembe, ezért fordulok hozzátok!

A honlap címe: http://hu.canadamylove.com és megrendelésre készítettem egy kanadai szervezetnek. A megrendelő ragaszkodott a tárhelyszolgáltatóhoz, aki ismerőse. Ez a tárhely nem Linux alapú, hanem IIS Windows 2008 alatt fut. A problémám valószínűleg innen ered.

A honlap készítése során volt néhány, a Windows környezetből eredő hiba, de azokat rögtön orvosolta a szolgáltató, így végül határidőre elkészült a honlap.

Maradt viszont egy olyan probléma, amivel nem tudok mit kezdeni.

Ha a keresőbe ékezetes szót írok (pl.: elérhetőség"), akkor "internal server error" hibaüzenettel csak egy fehér oldalt kapok. Ha ugyanezt a szót ékezetek nélkül írom be, akkor rendesen jön a keresés eredménye.

A pontosság kedvéért idézem a szolgáltató ide vonatkozó levelét, hátha előrébb visz:

Hello Laszlo,

Kereses kozben is ekezetes URL-t hasznal. Erdekes, mivel az aktualis URL az jo:
http://hu.canadamylove.com/search/node/%C3%A9tsz%C3%A1ze

De a valosagos az igy nez ki:
Requested URL http://hu.canadamylove.com:80/index.php?q=search/node/étszáze

Legyszives nezd meg hogy ezt lehet-e modositani a drupalon belul.

Udv,
Laci

Ebből én azt szűröm le, hogy ő a szerveroldalon nem tud mit kezdeni ezzel a problémával, próbáljam meg én megoldani a drupálon belül, hogy a címsorba ne kerüljenek ékezetes betűk a keresés során.

Próbáltam erre valamilyen modult keresni. Találtam is egyet (transliteration), ami ilyesmire hivatott. De sajnos nem oldotta meg a problémát, mert ez csak a feltöltésre kerülő fájlokat nevezte át, pl.: Ödön képe.jpg-ről odon_kepe.jpg-re, de a keresőkbe írt és címsorba kerülő szavakat nem módosítja.

Tehát a címsorba továbbra is "/search/node/elérhetőség" kerül "/search/node/elerhetoseg" helyett, így az oldal továbbra is elszáll a fenti hibaüzenettel.

Magyar látogatóktól nem várható el, hogy ékezetek nélküli szavakat írjanak a keresőbe, így valami megoldást kellene találni.

De vajon mi volna az...?

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
nevergone képe

Melyik Drupal verzió evan fent milyen modulokkal? Hirtelen erre tudok gondolni, de ahogy elnézem, valószínűleg nem ez lesz a probléma: http://drupal.org/node/987472

Fehér halálnál a szerver logjába hibaüzenet kerül. El tudod kérni ezt a logot a szolgáltatódtól, esetleg eléred a saját részed?

0
0
pp képe

Egyértelműen a webszerver beállításaiban van a hiba(a Drupalban egy fájl van a web.config amiben lehet a hiba). Javaslom a nemzetközi vizekre való evezést, mert itthon nem hinném, hogy sokan használnak IIS-t. A hiba jelzéséhez nem árt, ha megadjátok a webszerver verzióját és azt, hogy milyen service pack-et, vagy foltot tettetek fel rá, valamint azt is, hogy milyen módon van belehergelve a PHP.

Egyéb iránt, gondolom azért használ ilyen rendszert az illető, mert a gyártó cég nagyszerű supporttal rendelkezik. Én azzal is megpróbálkoznék azért.

pp

1
0
eMeLA képe

Praktikusabb lenne beállítani a szervert, vagy szolgáltatót váltani.

De ha ez mégsem, a legvégsőbb esetben: elvben a hook_form_alter()-ban ékezetmentesíteni kellene a search form $form['#action'] és $form_state['action'] értékét (ha jól néztem). De persze ez nem annyira elegáns, és nem is magyar nyelvbarát megoldás !

A search.module 975 sorában ($action = 'search/'.module_info['path'];) rakja össze az útvonalat. És lentebb pakolja be a helyére az adatokat.

0
0

...mit tudok: http://web.termuves.hu

nevergone képe

Nem néztem meg a search modul ezen részét és a $form_state változó tartalmát, de biztos vagy benne, hogy így a kereső a megfelelő ékezetes szavat fogja használni?

0
0
vlezli képe

Köszönöm mindenkinek a hozzászólását!

Lokalizált, magyar nyelvű Drupal 7.15-öt használok.

Megnéztem, a drupal jelentések között csak azok a keresések szerepelnek, ahol ékezet nélküli szavakat írtak be. Az ékezetes kereséseknek, amikor a hiba jelentkezett, nyoma sincs a jelentések között.

Én is a szolgáltatóváltást szorgalmaztam a megrendelőnél még a honlap elkészítése előtt, mert tartottam tőle, hogy problémák lesznek a Windows-os szerverkörnyezettel. Úgy is lett.

De a tulaj ragaszkodott ehhez a kanadai szolgáltatóhoz, aki egy magyar férfi és neki személy szerint jó ismerőse. Meg nem utolsó sorban mire a honlap megrendelésére került sor, már kifizette előre a nem kevés bérleti díjat, amit már nem akart veszni hagyni...

Így nem maradt más hátra, mint ebben a Window-os környezetben felépíteni a drupal honlapot és menet közben orvosolni a felmerült problémákat. Akadt is néhány, de a Keresővel kapcsolatos kivételével mindet sikerült a tárhelyszolgáltatóval rögtön megoldatni. (Pl. a MIME típusok között nem szerepelt néhány általam használt fájlkiterjesztés, emiatt a böngészőből nem lehetett azokat behívni, illetve belinkelni a honlapon.)

Egyébként a tárhelyszolgáltató Laci mindenben nagyon készségesnek bizonyult, de úgy tűnik ezzel a Keresős problémával nem tud mit kezdeni, azért kérte tőlem, hogy lehetőleg én csináljak valamit a drupalon belül.

Az igazsághoz tartozik még, hogy én alapból mindig felteszem a pathauto modult, ami automatikusan hoz létre álneveket a címsorban. Ez esetben is így kezdtem a munkát nem sejtve, hogy itt problémákat fog okozni.

Rögtön meg is tapasztaltam, hogy az általa létrehozott és a címsorban megjelenő ékezetes álnevek miatt a tartalmak is csak "fehér halállal" jelennek meg.

Ennek hatására kikapcsoltam a pathauto-t és kézzel átírtam a már általa átnevezett tartalmak elnevezését. Így elértem, hogy a tartalmak rendesen megjelennek.

Viszont kereséskor továbbra is ékezetes betűkkel kerül a keresett szó a címsorba, ami rögtön kiváltja az internal server error-t. Ugyanazt a szót ékezetek nélkül újra beírva már rendesen működik, jön a keresés eredménye.

Most nem tudom, nem emlékszem, hogy ez korábban, a pathauto telepítése előtt is így volt-e, vagy ebben is a pathauto a ludas.

Bár kikapcsoltam a pathauto modult, de nem lehet, hogy még mindig az kavar be valahogyan, amiért egy ideig használtam...?

Nem vagyok programozó, de azt gyanítom, hogy valahol a szerveren kellene a karakterkészletet átállítani a jól bevált UTF-8-ra. De lehet, hogy ez nem olyan egyszerű, ezért ódzkodik a tárhelyszolgáltató, és ehelyett inkább nálam kér valami helyi megoldást.

Mint írtam feljebb, ez egy kanadai (Toronto) szolgáltató. Gondolom ezért használ valamilyen, csak az angol helyesírást támogató karakterkészletet, és én vagyok az első, akinek az ékezetes betűk miatt problémája akadt a nála üzemeltetett honlappal.

Persze ez esetben is kell valamilyen megoldást találni...

A tárhelyszolgáltató mint írtam, nagyon készséges. De lehet, hogy neki is konkrét tanácsot kéne adni, mert nem tudja, hogy konkrétan mit és hol kéne tennie a szerveren, hiszen nem találkozott még ilyen helyzettel.

Ezek ismeretében esetleg van-e valamilyen használható ötlete valakinek?

0
0

Veres László

pp képe

Továbbra is IIS verzió és nemzetközi közösség.

Látható megkapja a webszerver a helyesen urlencode-olt stringet, amit valószínűleg dekódol. Ezt a dekódolt valamit kapja meg a rewrite modul ami a már utf-8 kódolású(tehát nem urlencode-olt) szöveget fogja használni az átírás során. Ezt pedig, mivel hibás karaktereket tartalmaz, eldobja a szerver.

Tehát itt a rewrite modul körül keresném a hibát. Valószínűleg rossz a verziója, vagy a beállítása.

Próbáld ki, kikapcsolt clean url-nél is jelentkezik-e a hiba.

pp

0
0
pp képe

Kipróbáltam nincs itt semmi probléma, a rewrite modul a ludas:

http://hu.canadamylove.com/?q=search/node/%C3%A9tsz%C3%A1ze

tök jól megy ez így.

Szóval a rövid megoldás, hogy kikapcsolod a rövid webcímeket, mert nem működnek.

pp

0
0
vlezli képe

Igen, ez volt a ludas! Kikapcsoltam a rövid webcímeket és így már az ékezetes betűkkel írt keresés is hibátlanul működik! :)

Mindenkinek köszönöm, aki próbált ötletekkel segíteni!

0
0

Veres László