![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 31.12.2006 Skąd: Warszawka Ostrzeżenie: (0%) ![]() ![]() |
Postanowiłem przerobić odnośniki na swojej witrynie do nowej postaci - przyjaznych URL -i. Uprzednio przeczytałem kilka artykułów na ten temat w necie. Stworzyłem odnośniki w oparciu o moduł przepisujący je, dostępny w Apache. Tak więc utworzyłem odpowiednie reguły w pliku .htaccess, tj.:
Cytat(".htaccess") RewriteEngine on RewriteRule ^(.*).html$ index.php?dzial=$1 [NC] RewriteRule ^/(.*)/(.*)/([0-9]{1,10})/(.*).html$ index.php?dzial=$1&akcja=$2&obiekt=$3&tytul=$4 [NC] Potem listę odnośników: Na tym etapie, przy wchodzeniu do każdego działu wszystko było OK. Postanowiłem więc przerabiać po kolei poszczególne moduły mojej strony. Pod pierwszy ogień poszły aktualności... i tutaj pojawił się problem. Mianowicie wziąłem się za implementację przyjaznych URL -i do komentarzy. Pod każdym newsem mam SPAN-a, który prowadzi do listy komentarzy, postanowiłem więc stworzyć link o takiej postaci: ku mojemu zdziwieniu odnośnik nie zadziałał, tak jak jego odpowiednik: Zacząłem sprawdzać co jest nie halo i dodałem następującą linijkę kodu do głównego pliku strony - index.php: Wydrukował on zawartość wszystkich zmiennych w tablicy $_GET i ku mojemu zdziwieniu pojawiła się tylko jedna - dzial: Cytat Array ( [dzial] => aktualnosci/komentarze/1/Tytul-newsa) Zaobserwowałem także inny problem. Po wejściu na wskazaną witrynę załadowała się strona główna serwisu (warunek default w instrukcji switch{} do zmiennej $_GET['dzial']), a do każdego odnośnika w menu dodało się (przykład dla index -a ): Cytat /aktualnosci/komentarze/1/index.html podczas gdy w kodzie wszystko wyglądało ok (tak jak na początku postu). Reasumując, proszę o pomoc, czy mógłby mi ktoś powiedzieć co robię źle i poradzić jak z tego błędu wybrnąć? Z góry dziękuję i pozdrawiam. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
Taki maly tip - zauwazyc ze ten dlugi ciag ktory podajesz pasuje do pierwszego prega - moze lepiej zmienic (.*) na cos innego ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Ten post edytował NuLL 31.12.2006, 08:35:07 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 31.12.2006 Skąd: Warszawka Ostrzeżenie: (0%) ![]() ![]() |
Próbowałem też z: ([^-]*), ale także nie działało (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) ... Co radzisz?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 28.03.2006 Skąd: Częstochowa Ostrzeżenie: (10%) ![]() ![]() |
zobacz tak:
Cytat RewriteRule ^/([^-]*)/([^-]*)/([^-]*)/([^-]*)\.html$ ./index.php?dzial=$1&akcja=$2&obiekt=$3&tytul=$4 [L,QSA] Powinno działać. Ten post edytował hzl_91 31.12.2006, 09:51:19 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 31.12.2006 Skąd: Warszawka Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie działa (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) , nadal to samo:
Cytat Array ( [dzial] => aktualnosci/komentarze/1/Tytul-newsa )
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 28.03.2006 Skąd: Częstochowa Ostrzeżenie: (10%) ![]() ![]() |
Moje .htaccess jest na 100% dobrze, tak mi się zdaje. Musisz mieć błąd w skrypcie.
A odpowiednik działa? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 31.12.2006 Skąd: Warszawka Ostrzeżenie: (0%) ![]() ![]() |
Mój skrypt też jest w 100% dobrze, skoro działa z linkiem w tej postaci:
Tylko dlaczego w przypadku przyjaznych URL -i widzi tylko jedną zmienną przekazywaną przez adres? Ten post edytował Hubson 31.12.2006, 10:23:58 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 28.03.2006 Skąd: Częstochowa Ostrzeżenie: (10%) ![]() ![]() |
A te aktualności.html itepe działa?
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 31.12.2006 Skąd: Warszawka Ostrzeżenie: (0%) ![]() ![]() |
Tak, nic nie zmieniło się od tego co napisałem w pierwszym poście... prócz zawartości pliku .htaccess - zmiana reguły na tą, którą podałeś.
Ten post edytował Hubson 31.12.2006, 10:26:18 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 28.03.2006 Skąd: Częstochowa Ostrzeżenie: (10%) ![]() ![]() |
robisz to na localu, czy na serwerze?
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 31.12.2006 Skąd: Warszawka Ostrzeżenie: (0%) ![]() ![]() |
Na localhoście.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 28.03.2006 Skąd: Częstochowa Ostrzeżenie: (10%) ![]() ![]() |
A spróbuj jeszcze tak:
Cytat RewriteRule ^([^-]*)/([^-]*)/([^-]*)/([^-]*)\.html$ ./index.php?dzial=$1&akcja=$2&obiekt=$3&tytul=$4 [L,QSA]
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 31.12.2006 Skąd: Warszawka Ostrzeżenie: (0%) ![]() ![]() |
Niestety nadal to samo... ;(
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 28.03.2006 Skąd: Częstochowa Ostrzeżenie: (10%) ![]() ![]() |
A moze tak:
Cytat RewriteRule ^([^-]*)/([^-]*)/([0-9]+)/([^-]*)\.html$ ./index.php?dzial=$1&akcja=$2&obiekt=$3&tytul=$4 [L,QSA] Ale się wkurzyłem ^^ muszę to zrobić (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 31.12.2006 Skąd: Warszawka Ostrzeżenie: (0%) ![]() ![]() |
Nadal to samo, czyt. nie działa.
Ale się wkurzyłem ^^ muszę to zrobić (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Też tak sobie postanowiłem wczoraj... po czym dzisiaj wylądowałem tutaj (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif) . |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 28.03.2006 Skąd: Częstochowa Ostrzeżenie: (10%) ![]() ![]() |
A zobacz tak
Cytat RewriteRule ^aktualnosci/([^-]*)/([0-9]+)/([^-]*)\.html$ ./index.php?dzial=aktualnosci&akcja=$2&obiekt=$3&tytul=$4 [L,QSA] może nie jest przekazywana zmienna działu. Ten post edytował hzl_91 31.12.2006, 10:42:53 |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 31.12.2006 Skąd: Warszawka Ostrzeżenie: (0%) ![]() ![]() |
W tym problem, że tylko ta zmienna jest przekazywana.
Cytat Array ( [dzial] => aktualnosci/komentarze/1/Tytul-newsa )
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 28.03.2006 Skąd: Częstochowa Ostrzeżenie: (10%) ![]() ![]() |
A mógł byś pokazać plik, który generuje tego linka.
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 31.12.2006 Skąd: Warszawka Ostrzeżenie: (0%) ![]() ![]() |
To jest skrypt aktualności i trochę tego kodu jest, pokażę Ci jedną linijkę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) odpowiedzialną za wygenerowanie odnośnika :]:
W razie jakichkolwiek pytań, funkcja usunpl() usuwa ze stringa polskie fonty i przerabia je na odpowiedniki zwykłych literek 'ś' => 's' itd... ale nie wiem po co Ci to było. Ten post edytował Hubson 31.12.2006, 13:11:23 |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 347 Pomógł: 0 Dołączył: 27.08.2005 Skąd: Inowrocław Ostrzeżenie: (0%) ![]() ![]() |
Kod RewriteEngine on RewriteRule ^(.*).html$ index.php?dzial=$1 [NC] RewriteRule ^/(.*)/(.*)/([0-9]{1,10})/(.*).html$ index.php?dzial=$1&akcja=$2&obiekt=$3&tytul=$4 [NC] Czy czasem te 2 reguly sie nie wykluczaja? Ten post edytował Balas 31.12.2006, 15:44:16 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 13:46 |