Malinaa
29.10.2016, 20:12:40
Witam,
mam pytanie jak sprawić aby plik file.php widoczny jako file.html
funkcjonował z rozszerzeniem i parametrem .html?id=ABC123
w taki sposób jak działa .php?id=ABC123
Jaką tu napisać regułę w .htaccess?
mattwoo
29.10.2016, 21:04:17
Spróbuj
Kod
RewriteRule file.html file.php [L,QSA]
Malinaa
30.10.2016, 15:53:03
Coś nie działa?
Skomplikowanie jest jeszcze tego typu, że plik przekazuje też inne parametry:
i link dokładnie chciałbym, aby wyglądał tak:
file-2-1.html?id=ABC123
czyli:
RewriteRule ^file-([0-9]+)-([0-9]+).html[co tutaj: ?id=]([A-Za-z0-9]+)$ file.php?sid=$1&kid=$2&id=$3 [L]
chyba, że jeszcze inaczej?
kapslokk
30.10.2016, 16:06:11
Zostaw sobie to co miałeś i do [L] dodaj QSA, tak żebyś miał [QSA,L]
Malinaa
31.10.2016, 09:40:05
Dodanie [QSA,L] czy pozostawienie [L] nic nie daje.
Jeśli napiszę regule chociażby ze znakiem @ przed id= Działa
RewriteRule ^file-([0-9]+)-([0-9]+).html@id=([A-Za-z0-9]+)$ file.php?sid=$1&kid=$2&id=$3 [L]
kiedy chcę ze znakiem ? przed id= co bym nie próbował i tak nie chce działać?
RewriteRule ^file-([0-9]+)-([0-9]+).html?id=([A-Za-z0-9]+)$ file.php?sid=$1&kid=$2&id=$3 [L]
Nie wiem jak sprawić, aby znak \? nie był traktowany jako wyrażenie, a zwykły znak,
albo jest tu inny problem przy rozszerzeniu .html i znaku ?
kapslokk
31.10.2016, 09:48:37
Po to dodajesz QSA, żeby Ci apache sam przekazywal query string dalej.
RewriteRule ^file-([0-9]+)-([0-9]+).html$ file.php?sid=$1&kid=$2 [QSA,L]
Teraz jak zrobisz file-1-2.html?id=3 to id będziesz miał w $_GET.
Malinaa
31.10.2016, 12:37:12
I faktycznie wystarczy do reguły, którą już miałem wcześniej dodać samo [QSA,L] i jest dobrze.
Dzięki
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.