PDA

Zobacz pełną wersję : Mod_rewrite czy tak się da??



bigus
18-06-2007, 23:42
Dużo się ostatnio mówi o przyjaznych url i w joomli średnio są przyjazne (joomla 1.5 wymiata pod tym wzgledem ale nie wiadomo kiedy bedzie a serwis czeka) Jeśli chodzi komponent content to nawet nieźle skraca, mam gallerie datsogallery w której po włączeniu sefa średnio są przyjazne

cms.nazwa.pl/component/option,com_datsogallery/Itemid,14/func,detail/id,40/
Czy była by możliwość np dopisania coś podobnego do tego komponentu jak dla content czy akurat jest tak to skonstruowane że nie da się;/
Piszę ponieważ planuje to komuś zlecić i nie wiem czy jest sens.
Jeśli ktoś się orientuję to proszę o odpowiedź
pozdrawiam

talaros
20-06-2007, 21:21
Zrobiłem wszystko jak należy. Zmienilem plik htacces.txt na .htaccess i nadal nic. NIe może wyświetlić żadnej strony. Ciągle komunikat:
Bad Request

Prosze o pomoc, co dalej musze zrobić? Przed translacja wszystko dzialalo dobrze.
Usunąłem - powtórzone, nieczytelne
zwiastun

zwiastun
21-06-2007, 00:13
Sory, ale tak się nie da! Może najpierw naucz się prostszych rzeczy - czytać (np. regulaminy forów, w których opisany jest zakres niezbędnych informacji przy zadawaniu pytań), umieszczać tekst w normalny sposób w jednym poście, a nie w kilku. Bo następnym razem to Cię najdzie pewno, żeby jeszcze kierunek tekstu zmienić.

bigus
21-06-2007, 23:35
talaros (http://forum.joomla.pl/member.php?u=7000) chyba się trochę w temat włączyłeś chociaż dotyczy czegoś innego
Drogi zwiastunie czy to co napisałem wcześniej jest do wykonania??
Da się poskracać linki innym komponentom??
Coś na wzór com_content

zwiastun
22-06-2007, 04:55
Wszystko się da (no prawie), ale to wymaga - im więcej tym więcej wiedzy. Może skorzystaj z któregoś z komponentów?

bigus
24-06-2007, 11:47
Komponenty odpadają;/ serwis jest robiony na duży trafic, a wszystkie obciążają bardzo serwery baz danych i spowalniają serwis.
a szukając znalazłem bardzo fajną metodę, teraz muszę tylko sprawdzić czy google dobrze indeksuje

W pliku include/sef.php koło linijki 16 wstawić kod


$_SERVER['REQUEST_URI'] = str_replace( "Contact_Us", "component/option,com_contact/Itemid,7",$_SERVER['REQUEST_URI']) ; i za kodem


// no query given. Empty $string to get only the fragment
// index.php#anchor or index.php?#anchor
} else {
$string = '';
}
$string = str_replace(

ten kod wstawic to jest kolo 518 linijki

"component/option,com_contact/Itemid,7","Contact_Us",$string) ;oczywiście każdy będzie miał itemid inne
przed zmianą
http://www.site.pl/component/option,com_contact/Itemid,7/

po zmianie

http://www.site.pl/Contact_Us/

:)

zwiastun
24-06-2007, 17:10
Podpuścić takiego, to zaraz coś wymysli :)

Dakota
24-06-2007, 19:35
witam.....

do bigusa.... mógłbyś zamiast mówić "koło linijki 16 wstawić kod" mógłbyś wstawić fragment kodu, po ktorym należy dopisać Twój fragment kodu ?
Podawanie numeru linijki jakoś się nie sprawdza..... :)

pozdrawiam
Dakota

bigus
24-06-2007, 21:31
Wygląda to tak

// no direct access
defined( '_VALID_MOS' ) or die( 'Restricted access' );

$_SERVER['REQUEST_URI'] = str_replace( "Contact_Us", "component/option,com_contact/Itemid,7",$_SERVER['REQUEST_URI']) ;


if (in_array('content', $url_array)) {
następnie wygląda to tak


// no query given. Empty $string to get only the fragment
// index.php#anchor or index.php?#anchor
} else {
$string = '';
}

$string = str_replace( "component/option,com_contact/Itemid,7","Contact_Us",$string) ;

// allows SEF without mod_rewrite
// comment line below if you dont have mod_rewrite
return $mosConfig_live_site .'/'. $string . $fragment;

Trzeba mieć włączone Translacja URL: w globalnej konfiguracji

Daj znać czy u Ciebie działa
Pamiętaj żeby napisać dobre Itemid dla tego komponentu
Z innymi też tak możesz robić.
Have a fun
ps. czekam teraz na ideksacje przez google zobaczę czy poprawnie czyta url jeśli tak to prawie cała joomle można tak zrobić nie angażując ciężkich komponentów dla baz danych.
Jeśli są jakieś pytania odnośnie skracania jakiś innych komponentów proszę pisać :)

Dakota
25-06-2007, 00:44
$_SERVER['REQUEST_URI'] = str_replace( "Contact_Us", "component/option,com_contact/Itemid,7",$_SERVER['REQUEST_URI']) ;

wstawiłam tak jak napisałeś natomiast nie wiem gdzie ,w którym miejscu mam wstawić pozostałe części... :)
pamietałam o poprawnym wstawieniu itemid...

Dakota

bigus
25-06-2007, 00:51
Edytowałem post wyżej, teraz powinno być OK w razie dalszych pytań pisz.

Dakota
25-06-2007, 01:29
niestety nie dziala....

Dakota
25-06-2007, 01:32
wywala info następującej treści " The requested URL /Contact_Us/ was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request."

p.s mam włączoną Translację URL: w globalnej konfiguracji

bigus
25-06-2007, 11:46
Prześlij mi plik sef.php albo wstaw go tutaj na forum, podaj itemid , podaj stronę na której to robisz i jaką masz joomle??

Dakota
25-06-2007, 20:42
wysłałam mejla z potrzebnym info....

Dakota