Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][MOD_REWRITE] Problem
Forum PHP.pl > Forum > Przedszkole
Zwariowany
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?
wizu
strona=strona([0-9]+)
Zwariowany
Poprawienie na: strona=([0-9]+) też nie skutkuje

może coś jest pomieszane z całym wyrażeniem, a nie tylko tym fragmentem?
nospor
w Rewrite Rule nie podaje się regułek dla rzeczy, które są za ? (query string)
Zainteresuj się flagą [QS]
Zwariowany
też probówałem i nie wyszło:
RewriteRule ^([0-9]+),.*\.php/strona(.+)=([0-9]+)$ /article.php?id=$1&strona=$2
nospor
yy, co próbowałeś? Bo chyba nie odnosisz się do mojego posta?
Zwariowany
kurka felek, już nie wiem co mam począć, bo w który róg nie pójdę, tam mi nie wychodzi smile.gif
nospor
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
Też nie trybi: RewriteRule ^([0-9]+),.*\.php$ /artykul.php?id=$1&strona=Request.QueryString("strona")
nospor
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.
Zwariowany
Nadal jasny gwint nie działa:
RewriteRule ^([0-9]+),.*\.php$ /artykul.php?id=$1
RewriteRule ^php.(.*)$ artykul.php?strona=$1 [QSA]
nospor
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
Działa kolego! Powiedz mi tylko na koniec, gdzie jest odniesienie do tej drugiej zmiennej? czyli strony?
nospor
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]


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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.