Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Mod rewrite i problem z linkami...
Mlody993
post
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

Ostrzeżenie: (0%)
-----


Witam,
z góry mówię, że jeżeli pomyliłem kategorię to proszę o przeniesienie, nie wiedziałem gdzie to dać.

A więc mam problem, chcę skorzystać z Mod_Rewrite na stronie no i jeden działa, a dwa nie. sad.gif

Mój .htaccess :
RewriteEngine on
RewriteRule ^index,([0-9])$ index.php?set=$1
RewriteRule ^index,([0-9]),([a-zA-Z]+)$ index.php?set=$1&id=$2
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3&show=$4
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3&pokaz=$5
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3&polecamy=$6

No i te 2 ostatnie linijki nie chcą działać, sad.gif Co poprawić?
Go to the top of the page
+Quote Post
maly_swd
post
Post #2





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


a co to ma byc:
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3&pokaz=$5
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3&polecamy=$6

powinno byc:
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3&pokaz=$4
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3&polecamy=$4

ale wtedy nie ma sensu bo regulka 1 to to samo co 2

pokaz budowe linku, jaki ma byc obslugiwany przez te 2 ostatnie reguly


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
Mlody993
post
Post #3





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

Ostrzeżenie: (0%)
-----


No przykładowo mam link:

?set=1&id=info&get=welcome
index,1,info,welcome - bo gdy dam w mod_rewrite / i w link / to mi obrazki się nie wczytują sad.gif

w dwóch ostatnich linijkach jest tak:

?set=1&id=info&get=newsy&pokaz=tytul_newsa
index,1,info,newsy,tytul_newsa

?set=1&id=info&get=polecamy&pokaz=nazwa
index,1,info,polecamy,nazwa

Gdy dam tak te regułki $4 i $4 to też nie działa ;/
Go to the top of the page
+Quote Post
maly_swd
post
Post #4





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


?set=1&id=info&get=newsy&pokaz=tytul_newsa
index,1,info,newsy,tytul_newsa

?set=1&id=info&get=polecamy&pokaz=nazwa
index,1,info,polecamy,nazwa

RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3&pokaz=$4

pozdaj linka gdzie CI te obrazki zle dzialaja

i wywal to:
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3&show=$4
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3&pokaz=$5
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3&polecamy=$6

Ten post edytował maly_swd 11.07.2009, 20:46:33


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
Mlody993
post
Post #5





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

Ostrzeżenie: (0%)
-----


Jak wywalę to:
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3&show=$4
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3&pokaz=$5
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3&polecamy=$6

To nie będą mi działały dwa działy. ://

Bo zrobione jest to tak...

index.php?set=1&id=info&get=newsy&show=tytul_newsa

No i ta zmienna get otwiera plik newsy, w którym jest kolejna zmienna show i bierze pliki z innego katalogu (w tym przypadku katalog newsy).
W zmiennej get są 3 pliki, które robią kolejną zmienną do innych folerów, nazywają się one newsy, artykuly, polecamy. Ich zmienne to show, pokaz, polecamy.

Co do obrazków, jak mam tak:
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3&polecamy=$6
( index,1,info,polecamy,bleble )

to wszytko działa, obrazki są. A gdy zrobię tak:
RewriteRule ^index/([0-9])/([a-zA-Z]+)/([a-zA-Z]+)/([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3&polecamy=$6
( index/1/info/polecamy/bleble )

to niestety nie działają obrazki, nie wczytuje ich. sad.gif
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. przecież masz trzy razy te same wzorce, jak ma rewrite rozróżnić, który masz na myśli? Jasnowidza chcesz z niego zrobić? tongue.gif Wyraź się jasno we wzorcach, to Rewrite przepisze Ci jasno.
  2. Co do obrazków: RewriteCond; poszukaj, bo było nieraz.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Mlody993
post
Post #7





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

Ostrzeżenie: (0%)
-----


W takim razie jak mam poprawić te reguły, aby było dobrze?
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Tak, aby nie były wszystkie takie same i parser wiedział, którą masz na myśli.

Żeby Ci lepiej wytłumaczyć, z Twojego kodu:
Kod
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$

Jak widzisz, to są trzy takie same wzorce; skąd interpreter ma wiedzieć, której użyć, skoro są identyczne? Musisz je tak przebudować, aby czymś się różniły adekwatnie do tego, czego potrzebujesz.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Mlody993
post
Post #9





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

Ostrzeżenie: (0%)
-----


Przykładowo:
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-z]+)$
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-z0-9+)$

Może być? Wtedy w regułce nr dwa nie będzie żadnych dużych liter, a w regułce 3 otworzą się pliki które mają litery i cyfry (np. bla123)?

@edit:
Teraz mam tak:
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)$ index.php?set=$1&id=$2&get=$3&show=$4
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-zA-Z]+)([0-9]+)$ index.php?set=$1&id=$2&get=$3&pokaz=$4
RewriteRule ^index,([0-9]),([a-zA-Z]+),([a-zA-Z]+),([a-z][0-9][0-9]+)$ index.php?set=$1&id=$2&get=$3&polecamy=$4


No i niestety nie działa. :/ proszę o jakąś pomoc/wskazówkę.

Ten post edytował Mlody993 14.07.2009, 19:25:08
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie może być, bo nie precyzujesz, o który dział chodzi.

Jak przykładasz miarkę przy budowie domu, to do znanych punktów odniesienia, nie? tongue.gif


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Mlody993
post
Post #11





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

Ostrzeżenie: (0%)
-----


Ehh.. już tracę na to silę. biggrin.gif

Proszę o jakąś wskazówkę, bo kombinuje męczę się i nic z tego sad.gif


@edit:
Aha, chyba wiem o co chodzi.

Po prostu zamiast jednego ([a-z-A-Z]+) dać nazwę pliku jaki jest wczytywany ? tongue.gif I on go wczyta?

Ten post edytował Mlody993 14.07.2009, 19:30:35
Go to the top of the page
+Quote Post
erix
post
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




To nie zabieraj się na to, skoro nie masz cierpliwości. tongue.gif

Twoje wzorce wskazują po prostu na niemal to samo, poczytaj o wyrażeniach regularnych, bo nie mamy bazy, na której moglibyśmy się opierać w dyskusji.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Mlody993
post
Post #13





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

Ostrzeżenie: (0%)
-----


Ale po co ja mam to wszystko czytać jak nawet nie wiem w czym leży problem. :/

Nikt nie ma pomysłu?? :/

Czytałem o tym całym Mod rewrite no i nic :/
Go to the top of the page
+Quote Post
erix
post
Post #14





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Czytałeś? I wiesz chociaż, o czym ja pisałem?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Mlody993
post
Post #15





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

Ostrzeżenie: (0%)
-----


No, że się powtarzają i nie wie o które mi chodzi. ; p

Ale jak to zastąpić innym... Nie mam pomysłu, jak to rozwiązać. :/
Go to the top of the page
+Quote Post
erix
post
Post #16





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No właśnie, nie wie.

Hmm, jak by Ci to inaczej wytłumaczyć... Po pierwsze, kurs rewrite, to podstawa, wyrażeń regularnych też.

Ale zwróć uwagę na coś takiego: ogólnie regexpy mają to do siebie, że nie wyciągają danych "ściśle", tylko jak w wypracowaniach. [; Tzn. w ten sposób, masz np. wyrażenie "spomiędzyA(wyciągnij wszystko, co zawiera litery...)spomiędzyB" - w Twoich trzech wzorcach jest 3x: "spomiędzyA(wyciągnij wszystko, co zawiera litery...)" - pierwszy wzorzec spełni wszystkie trzy przypadki, gdyż nawet jak wstawisz "spomiędzyB" do sprawdzanego ciągu (nie wzorca!), to spełni on warunki pierwszego przypadku i nie będzie co przetwarzać w następnych.

Co musisz zrobić: musisz przerobić wzorce tak, aby każdy z nich miał inną kanwę, w naszym przypadku: ma różnić się tym "spomiędzyX", co - podpowiedź - ma u Ciebie wskazywać na konkretny dział.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Mlody993
post
Post #17





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

Ostrzeżenie: (0%)
-----


Nie no nie mogę... :/ Chyba sobie to odpuszczę. :/
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 00:30