PDA

Zobacz pełną wersję : SEF i komponenty



neovita
30-10-2006, 15:49
Witam

Mam kłopot z przyjaznymi linkami. Chcę skorzystać z openSEF lub podobniego komponentu. Okazało się w trakcie testów, że nieprawidłowo działa mi rownież standartowy SEF. I na tym się skupmy, ponieważ to podstawa.

Friendly urls generują się dobrze, z jednym zastrzeżeniem: nie działają poprawnie komponenty (własne joomli), jak choćby wyszukiwarka, logowanie/rejestracja czy sondy.

Konkretnie.

Witryna jest póki co pod adresem: http://neovita.pl/neovita
BEDĄC NA STRONIE GŁÓWNEJ, kiedy wpisuje coś w SZUKAJkę - działa.

ALE kiedy robię to samo z ktorejś PODSTRONY, np. http://neovita.pl/neovita/content/view/44/44/ (http://neovita.pl/neovita//content/view/44/44/) , to szukajka daje 404

Błędy są też w działaniu com_login (logowanie / wylogowanie, rejestracja, przypom hasła). Ze strony głównej działa poprawnie, z podstron nie.

Czyli linki przekierowujące wewnątrz samych modułów wywalają usera w kosmos. Błąd polega na tym, że komponent nie przekierowuje do roota domeny, tylko dokleja kod do adresu strony, z której jest kliknięty. Dla przykładu link do wyników wyszukiwania wygląda tak:

http://neovita.pl/neovita/content/view/22/33/index.php?option=com_search...itd (http://neovita.pl/neovita/component/option,com_search/Itemid,84/index.php?option=com_search&Itemid=84&searchword=slowoszukane.....odu%C5%82%C3%B3w)

a powinien wyglądać tak:

http://neovita.pl/neovita/index.php?option=com_search...itd (http://neovita.pl/neovita/index.php?option=com_search&Itemid=84&searchword=slowo)

Uprzedzając ew. pytania o procedurę instalacji (np. czy zmieniłeś htaccess.txt na .htaccess) odpowiadam z góry na wszystkie TAK :-)

Serwis jest na home.pl.

Szukając rozwiazania przetrzelałem kilkaset postów na forach polskich i zagranicznych. Wszystkie odp kręciły się wokół .htaccess, mod_rewrite etc. Nie znalazłem KONKRETNIE takiego samego problemu. Ludzie miewają podobne (może tylko inaczej opisane), nawet na tym forum. Ale rozwiązania póki co ni chu chu.

Czy ktoś spotkał się z taką sytuacją i poradził sobie skutecznie?

Jak dla mnie najlepszym wyjściem byłoby wyłączenie SEF w stosunku do wybranych komponentów. Może ktoś wie jak to zrobić?

szuman
30-10-2006, 22:15
poczekaj na wersje stable komponentow OpenSEF i 404 SEF. Mi osobiscie bardziej odpowiada 404 SEF, ale ma zbyt wiele bledow, chocby w wynikach podzialu na podstrony. Co do standardowej translacji, mi wszystko działa jak włącze, ale ja nie mam konta na home.pl. Co to ma do rzeczy? To, ze oni maja jakies wlasne wdrozenia wlasnych patentów czy cuś i sa u nich problemy z maskowaniem URL-i.

neovita
31-10-2006, 12:58
Rozwiązałem problem, mam nadzieję że na dobre.

Po pierwsze zastosowałem rady z tego postu (http://forum.j-prosolution.com/opensef-documentation/2430-opensef-component-working-under-microsoft-windows-iis6-server.html). Częściowo zaczęło działać (search przestał wywalać mnie w kosmos).

Potem, na tym samym forum openSEF znalazłem info, że dla prowidłowej pracy komponentów, przekierowania w komponentach powinny wyglądać tak:

<form action="<?php echo sefRelToAbs( 'index.php' ); ?>" ...

Zamiast tak:

<form action="index.php" method="post" name="login" >

Funkcja sefRelToAbs (obecna w pliku sef.php) powoduje, że potraktowany nią link (np. index.php?option=logout) sprowadzony jest zawsze do roota witryny, zamiast być doklejony do urla strony, gdzie został kliknięty.

Wejrzałem w kod problematycznych komponentów (com_search, com_login, com_registration) i okazało się, ze jest lekki bałagan. Raz wygląda to tak, a raz tak.

Po zmianie wszystkich przekierowań wewnątrz komponentów do postaci wykorzystującej funkcję sefRelToAbs komponenty zaczęły działać.

Być może na innych serwerach typu APACHE działa to poprawnie tak czy owak. Home.pl będąc serwerem "dziwnym" widocznie jest wrażliwy czy cóś...

Pozdrawiam
Dariusz Młynarski

szuman
01-11-2006, 08:32
i bardzo ładnie :) kolejne świadectwo na to, ze kto szuka - znajduje :) Pozdrawiam