Zwariowany
19.11.2011, 10:49:33
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=2I coś pomieszałem, bo jak wklepuje ten link to wyświetla, że nie ma takiej strony, mimo, że ona jest

Ktoś mi może wskazać co zrobiłem źle?
wizu
19.11.2011, 11:03:46
strona=strona([0-9]+)
Zwariowany
19.11.2011, 16:15:09
Poprawienie na: strona=([0-9]+) też nie skutkuje
może coś jest pomieszane z całym wyrażeniem, a nie tylko tym fragmentem?
nospor
19.11.2011, 16:17:32
w Rewrite Rule nie podaje się regułek dla rzeczy, które są za ? (query string)
Zainteresuj się flagą [QS]
Zwariowany
19.11.2011, 16:21:24
też probówałem i nie wyszło:
RewriteRule ^([0-9]+),.*\.php/strona(.+)=([0-9]+)$ /article.php?id=$1&strona=$2
nospor
19.11.2011, 16:23:02
yy, co próbowałeś? Bo chyba nie odnosisz się do mojego posta?
Zwariowany
19.11.2011, 16:24:52
kurka felek, już nie wiem co mam począć, bo w który róg nie pójdę, tam mi nie wychodzi
nospor
19.11.2011, 16:28:46
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
Zwariowany
19.11.2011, 16:42:41
Też nie trybi: RewriteRule ^([0-9]+),.*\.php$ /artykul.php?id=$1&strona=Request.QueryString("strona")
nospor
19.11.2011, 16:45:32
Request.QueryString("strona")
skądżes to wytrzasnął

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¶metr=2
RewriteRule ^(.*).html$ index.php?a=$1 [QSA]
O przejrzeniu innych linków już nie wspominając.
Zwariowany
19.11.2011, 16:54:53
Nadal jasny gwint nie działa:
RewriteRule ^([0-9]+),.*\.php$ /artykul.php?id=$1
RewriteRule ^php.(.*)$ artykul.php?strona=$1 [QSA]
nospor
19.11.2011, 16:56:51
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]
Zwariowany
19.11.2011, 16:58:48
Działa kolego! Powiedz mi tylko na koniec, gdzie jest odniesienie do tej drugiej zmiennej? czyli strony?
nospor
19.11.2011, 17:05:02
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¶metr=2
RewriteRule ^(.*).html$ index.php?a=$1 [QSA]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.