master Opublikowano 22 Grudnia 2005 Udostępnij Opublikowano 22 Grudnia 2005 Witam! Od kilku dni robie podchody do mod rewrite, czytałem odnośnie regułek na forum i innych stronkach. Stworzyłem sobię prostą regułkę dla jednej podstrony i niestety pojawił się problem, przez który zaraz wyrzucę monitor przez okno. Regułka jest bardzo prosta i wygląda tak : RewriteRule ^mapa_serwisu_([^-]+).html /index.php?s=18〈=$1 [L] Chodzi o to,że serwis jest w kilku językach i chcę,żeby w linku widoczna była wartość zmiennej przypisana danemu językowi. I teraz co mam wpisać w kodzie php w miejscu index.php?s=18〈=<?=$lang?> ? Poza tym na jednej stronce wyczytałem, że powinienem umieścić w kodzie takie coś: <?php function rewrite_url_filter($data) { $link = $data[0]; $link = ereg_replace('"$', '', $link); $link = explode('="', $link); $_link = $link[0]; $link = $link[1]; // Tutaj wstawimy reguły $link = $_link.'="'.$link.'"'; return $link; } function rewrite_ob_filter($string) { return preg_replace_callback('/(href|src|action)s*=s*"[^"]+"/', 'rewrite_url_filter', $string); } ob_start('rewrite_ob_filter'); ?> żeby przepisywać dynamiczne linki na krótkie "html" we współdziałaniu z mod rewrite. Tylko z czym to się je ? Za wszelką pomoc z góry dziękuję. If I could have my wasted days back Would I use them to get back on track? Stop to warm and karma’s burning Or look ahead , but keep on turning? -------------------- - Metallica Odwiedź Tattoo Studio i zrób sobie profesjonalny tattoo Potrzebujesz więźbę dachową lub inne drzewo - tartak Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Erbit Opublikowano 22 Grudnia 2005 Udostępnij Opublikowano 22 Grudnia 2005 Stosuj znaczniki code /code jak podajesz przyklad na forum. RewriteRule ^mapa_serwisu_([^-]+).html /index.php?s=18〈=$1 [L] .... index.php?s=18〈=<?=$lang?> ? ... Zawartosc przeslanej wartosci znajduje sie w tablicy $_GET[] wiec odczytasz to za pomocą $_GET['lang'] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Artur Opublikowano 22 Grudnia 2005 Udostępnij Opublikowano 22 Grudnia 2005 Albo ja nie rozumiem co chcesz osiągnąć albo źle napsiałeś. jesteś pewien, że chcesz zeby zawsze każdą stronę zaczynają cą się od mapa_serwisu_([^-]+).html przepisywało na /index.php?s=18〈=$1 ? Zawsze ten sam parametr 's' ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Erbit Opublikowano 22 Grudnia 2005 Udostępnij Opublikowano 22 Grudnia 2005 Albo ja nie rozumiem co chcesz osiągnąć albo źle napsiałeś. Ty nie rozumiesz bo on źle napisał... więc jedno i drugie a nie 'lub' Master - Artur słusznie zauważył brak logoki w Twoim przykładzie. Odnośnie sesji (przykładu gdzies wyczytanego) to nie tyczy się on Twojego problemu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mion Opublikowano 23 Grudnia 2005 Udostępnij Opublikowano 23 Grudnia 2005 Poza tym przedmiotowy link przekazuje 2 parametry $s i $lang w związku z czym Twoja definicja wyrażeń regularnych w mod rewrite jest całkowicie błędna. Niestety nie w "tym kościele dzwonią"... Ale z pewnością Pan Erbit nakieruje Cię na właściwy trop Jak zauważyłem w/w jest w temacie mod_rewrite obeznany i nie są Mu obce zagadnienia [niezbędnych w tym wypadku] wyrażeń regularnych. Tak już na marginesie dodam, że wartość sterującą językiem strony można zapisać w zmiennej sesji i całkowicie wyłączyć z url... Ale szczegóły tego zagadnienia wybiegają już poza ramy tego postu HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Erbit Opublikowano 23 Grudnia 2005 Udostępnij Opublikowano 23 Grudnia 2005 Ja zaś zauważyłem, że Pan Mion obeznany jest w PHP Co do mod_rewrite, wróce jeszcze do tego tematu... Odnośnie języka w sesji. Czy po to robione są przyjazne URL by dokładać potem sesje ? Takie rozwiązanie na pewno bedzie dobre dla usera ale czy bedzie dobre dla robotów !? Raczej nie... Pozdrawiam. [edyta] Mion - wolę małymi krokami nakierować 'pytacza' na rozwiązania w taki sposób by sam wpadł na rozwiązanie. Nie wydaje mnie się by podawanie gotowych rozwiązań w przypadku braku pojmowania tematu było dobrym wyjściem... Na temat mod_rewrite było na tyle dużo wyjaśniane iz master powinien dostrzec zasadę działania mod_rewrite i krótkich URL. Poczekajmy więc na samego zainteresowanego. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mion Opublikowano 23 Grudnia 2005 Udostępnij Opublikowano 23 Grudnia 2005 Skoro sesje nie są cool możemy się sposiłkować wystawieniem ciacha z parametrem języka przykładowo w ten sposób: <a href="jezyk.php?jaki=PL">PL</a> <a href="jezyk.php?jaki=PL">PL</a> <a href="jezyk.jaki_jezyk-DE.html">DE</a> <a href="jezyk.jaki_jezyk-DE.html">DE</a> // plik jezyk.php setcookie('jaki_jezyk',$_GET['jaki']); Header("Location: $_SERVER[HTTP_REFERER]"); exit; I mamy dostępną zmienną $_COOKIE['jaki_jezyk']; Oczywiście ktoś może powiedzieć ze ciacha tez nie sa cool Ponadto czy roboty akceptują ciacha wystawiane przez przeszukiwane serwisy? Jeśli nie to nie zaindeksują stron w innych wersjach językowych Jeśli tak, to zakładam, że powinna być dla nich dostępna strona w innej wersji językowej... ale tego nie sprawdzałem w praktyce... Przekazywanie w adresie, jak mniemam ma tylko jedną wadę... łatwo zapomnieć o dopisaniu wartości odpowiedzialnych za język HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Erbit Opublikowano 23 Grudnia 2005 Udostępnij Opublikowano 23 Grudnia 2005 Skoro sesje nie są cool możemy się sposiłkować wystawieniem ciacha... Nie chciałem tego pisać wcześniej... Roboty nie obsługują ciastek więc zaindeksowanie wersji jezykowych nie bedzie mozliwe. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
master Opublikowano 27 Grudnia 2005 Autor Udostępnij Opublikowano 27 Grudnia 2005 No to jestem! Sorki za nieobecność, ale była przerwa świąteczna, a ja chwilowo w domu nie mam kompa Do rzeczy - Chodziło mi o to, żeby strona o parametrze s=18 zmieniana była na mapa-serwisu, natomiast dalej, żeby z obecnego url`a wyciągany był parametr języka, wtedy całość ma postać mapa-serwisu_Pl dla wersji Polskiej, De dla wersji niemieckiej itd. Pisząc ten topik moją główną udrenką było nie napisanie samej regułki w htaccess ale to co muszę wpisać w kodzie php. Po zjedzeniu nieco nerwów i wyrwaniu kilku włosów jakoś do tego doszedłem. Niestety nie wiem czy moje rozwiązanie jest dobre dla wyszukiwarek... W kodzie php wpisałem taką regułkę: $link = preg_replace('#index\.php\?s=18〈=([0-9a-zA-Z \-]*)?#si', 'mapa-serwisu_\\1.html', $link); $link = preg_replace('#index\.php$#si', '\\1.html', $link); Korzystając z okazji chciałbym zapytać Pana Erbita (i innych oczywiście) co o tym myśli...? Dziękuję wszystkim za zainteresowanie tematem i pozdrawiam. If I could have my wasted days back Would I use them to get back on track? Stop to warm and karma’s burning Or look ahead , but keep on turning? -------------------- - Metallica Odwiedź Tattoo Studio i zrób sobie profesjonalny tattoo Potrzebujesz więźbę dachową lub inne drzewo - tartak Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Erbit Opublikowano 27 Grudnia 2005 Udostępnij Opublikowano 27 Grudnia 2005 ...zapytać Pana Erbita... Szanowny Panie master. Jeżeli to co za przykład Pan podałeś działa - oznacza, że doszedłeś Pan do rozwiązania problemu. Z drugiej strony Pański pierwszy post zawiera sporo niejasności. Mam nadzieję, żeś Pan uporał się do końca z problemem.W każdym bądź razie kierunki masz Pan niezłe. Niesety nie wydaje mnie się by ta konstrukcja wyrażenia była do końca poprawna lang=([0-9a-zA-Z \-]*) Jeśli naprawdę chcesz zropzumieć zagadnienia mod_rewrite to zerknij na to -> www.cms.rk.edu.pl/art_51.html Popatrz także na to -> www.programuj.com/artykuly/www/regularne.php a pozostałych spraw szukaj tak -> https://www.google.pl/search?hl=pl&q=wyra%C...aj+w+Google&lr= Pozdrawiam. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
master Opublikowano 27 Grudnia 2005 Autor Udostępnij Opublikowano 27 Grudnia 2005 Pański pierwszy post zawiera sporo niejasności. Pokornie się przyznaję co do pierwszego postu, ale wtedy byłem nieco do tyłu w porównaniu z chwilą teraźniejszą. Jeśli chodzi o link to właśnie tą stronką podpierałem się w moich zmaganiach If I could have my wasted days back Would I use them to get back on track? Stop to warm and karma’s burning Or look ahead , but keep on turning? -------------------- - Metallica Odwiedź Tattoo Studio i zrób sobie profesjonalny tattoo Potrzebujesz więźbę dachową lub inne drzewo - tartak Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Erbit Opublikowano 27 Grudnia 2005 Udostępnij Opublikowano 27 Grudnia 2005 w porównaniu z chwilą teraźniejszą. Hmmm.. ale to i tak jeszcze mało.Uzupełniłem wypowiedź wyżej o jeden istotny drobiazg. Tym drobiazgiem są 'wyrażenia regularne'. To bardzo obszerny temat - niemniej zapoznaj się z nim, na pewno bardzo często się przyda i to nie tylko przy mod_rewrite. Zrozum ten zapis, który sam podałeś ([0-9a-zA-Z \-]*) Pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
master Opublikowano 27 Grudnia 2005 Autor Udostępnij Opublikowano 27 Grudnia 2005 Cofam co powiedziałem, właśnie zdałem sobię sprawę,że to co z tego zakumałem znaczy tyle co g... !! If I could have my wasted days back Would I use them to get back on track? Stop to warm and karma’s burning Or look ahead , but keep on turning? -------------------- - Metallica Odwiedź Tattoo Studio i zrób sobie profesjonalny tattoo Potrzebujesz więźbę dachową lub inne drzewo - tartak Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mion Opublikowano 27 Grudnia 2005 Udostępnij Opublikowano 27 Grudnia 2005 Co to za niejasna koncepcja .... Zastosowanie mod_rewrite i preg_replace() ...? Z czym to się je... ? HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
master Opublikowano 27 Grudnia 2005 Autor Udostępnij Opublikowano 27 Grudnia 2005 Co to za niejasna koncepcja .... Zastosowanie mod_rewrite i preg_replace() ...? Z czym to się je... ? Takie roziwązanie znalazłem w sieci imędzy innymi na w.w przez Erbita linkach. Jeśli znasz jakąś inną metodę to chętnie ją poznam bo szczerze mówiąc gubie się w tym... If I could have my wasted days back Would I use them to get back on track? Stop to warm and karma’s burning Or look ahead , but keep on turning? -------------------- - Metallica Odwiedź Tattoo Studio i zrób sobie profesjonalny tattoo Potrzebujesz więźbę dachową lub inne drzewo - tartak Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Zarchiwizowany
Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.