Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inne][MOD_REWRITE] Problem
Zwariowany
post 19.11.2011, 10:49:33
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 6.01.2009

Ostrzeżenie: (20%)
X----


Stworzyłem taki oto mod_rewrite:

RewriteRule ^([0-9]+),.*\.php?strona=strona([0-9]+)$ /artykul.php?id=$1&strona=$2

a link wyglada w tej postaci:

http://strona/10016,art-art-art.php?strona=2

I coś pomieszałem, bo jak wklepuje ten link to wyświetla, że nie ma takiej strony, mimo, że ona jest smile.gif

Ktoś mi może wskazać co zrobiłem źle?


--------------------
Go to the top of the page
+Quote Post
wizu
post 19.11.2011, 11:03:46
Post #2





Grupa: Zarejestrowani
Postów: 127
Pomógł: 15
Dołączył: 16.02.2008
Skąd: Sanok

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


strona=strona([0-9]+)
Go to the top of the page
+Quote Post
Zwariowany
post 19.11.2011, 16:15:09
Post #3





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 6.01.2009

Ostrzeżenie: (20%)
X----


Poprawienie na: strona=([0-9]+) też nie skutkuje

może coś jest pomieszane z całym wyrażeniem, a nie tylko tym fragmentem?


--------------------
Go to the top of the page
+Quote Post
nospor
post 19.11.2011, 16:17:32
Post #4





Grupa: Moderatorzy
Postów: 36 477
Pomógł: 6301
Dołączył: 27.12.2004




w Rewrite Rule nie podaje się regułek dla rzeczy, które są za ? (query string)
Zainteresuj się flagą [QS]


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Zwariowany
post 19.11.2011, 16:21:24
Post #5





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 6.01.2009

Ostrzeżenie: (20%)
X----


też probówałem i nie wyszło:
RewriteRule ^([0-9]+),.*\.php/strona(.+)=([0-9]+)$ /article.php?id=$1&strona=$2


--------------------
Go to the top of the page
+Quote Post
nospor
post 19.11.2011, 16:23:02
Post #6





Grupa: Moderatorzy
Postów: 36 477
Pomógł: 6301
Dołączył: 27.12.2004




yy, co próbowałeś? Bo chyba nie odnosisz się do mojego posta?


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Zwariowany
post 19.11.2011, 16:24:52
Post #7





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 6.01.2009

Ostrzeżenie: (20%)
X----


kurka felek, już nie wiem co mam począć, bo w który róg nie pójdę, tam mi nie wychodzi smile.gif


--------------------
Go to the top of the page
+Quote Post
nospor
post 19.11.2011, 16:28:46
Post #8





Grupa: Moderatorzy
Postów: 36 477
Pomógł: 6301
Dołączył: 27.12.2004




Bo zamiast przeczytać ze zrozumieniem co ci piszą to walisz jak głupi bez celu.

Napisałem ci ze wszystko po ? nie jest brane pod uwagę. A ty co? A ty zamieniasz ? na /. No co ma piernik do wiatraka? W RewriteRule brane pod uwagę są rzeczy bez query string - wszystko to co po ? to jest query string.

Napisałem ci również słowo klucz [QS] - zainteresuj się tym, a nie strzelasz.

edit: poprawka, nie QS a QSA


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Zwariowany
post 19.11.2011, 16:42:41
Post #9





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 6.01.2009

Ostrzeżenie: (20%)
X----


Też nie trybi: RewriteRule ^([0-9]+),.*\.php$ /artykul.php?id=$1&strona=Request.QueryString("strona")


--------------------
Go to the top of the page
+Quote Post
nospor
post 19.11.2011, 16:45:32
Post #10





Grupa: Moderatorzy
Postów: 36 477
Pomógł: 6301
Dołączył: 27.12.2004




Request.QueryString("strona")
skądżes to wytrzasnąłquestionmark.gif

Wpisałem w google: mode rewrite qsa
I pierwszy polski link wyjaśnia tę sprawę na 100%
Cytat
zasami potrzebne jest doczepienie całego zapytania query string. Służy do tego flaga QSA.
# przy wywołaniu test.html?parametr=2
# zostanie uruchomiony index.php?a=$1&parametr=2

RewriteRule ^(.*).html$ index.php?a=$1 [QSA]

O przejrzeniu innych linków już nie wspominając.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Zwariowany
post 19.11.2011, 16:54:53
Post #11





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 6.01.2009

Ostrzeżenie: (20%)
X----


Nadal jasny gwint nie działa:
RewriteRule ^([0-9]+),.*\.php$ /artykul.php?id=$1
RewriteRule ^php.(.*)$ artykul.php?strona=$1 [QSA]


--------------------
Go to the top of the page
+Quote Post
nospor
post 19.11.2011, 16:56:51
Post #12





Grupa: Moderatorzy
Postów: 36 477
Pomógł: 6301
Dołączył: 27.12.2004




Zmien: .*
na: .*?

RewriteRule ^php.(.*)$ artykul.php?strona=$1 [QSA]
Brak sił. A ta linijka nagle skad?

Tak ma byc i tylko to:
RewriteRule ^([0-9]+),.*?\.php$ artykul.php?id=$1 [QSA]
Powód edycji: [nospor]:


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Zwariowany
post 19.11.2011, 16:58:48
Post #13





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 6.01.2009

Ostrzeżenie: (20%)
X----


Działa kolego! Powiedz mi tylko na koniec, gdzie jest odniesienie do tej drugiej zmiennej? czyli strony?


--------------------
Go to the top of the page
+Quote Post
nospor
post 19.11.2011, 17:05:02
Post #14





Grupa: Moderatorzy
Postów: 36 477
Pomógł: 6301
Dołączył: 27.12.2004




No QSA. Ty w ogóle nie przeczytałeś tego, co ci zacytowałem z polskiego arta....
Cytat
zasami potrzebne jest doczepienie całego zapytania query string. Służy do tego flaga QSA.
# przy wywołaniu test.html?parametr=2
# zostanie uruchomiony index.php?a=$1&parametr=2

RewriteRule ^(.*).html$ index.php?a=$1 [QSA]




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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Wersja Lo-Fi Aktualny czas: 9.06.2024 - 10:03