Autor | Zpráva | ||
---|---|---|---|
koudelacek Profil * |
#1 · Zasláno: 28. 3. 2013, 17:15:34
Na webu mám .htaccess nastaven takto:
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)/ page.php?id=$1 RewriteRule ^(.*)/(.*)/$ page.php?id=$1&sub=$2 pokud najedu na stránku bla.cz/neco/neco2/ - tak $_GET['sub'] je spravne, ale $_GET['id'] = page.php Nerozumím tomu, prosím o radu. |
||
DJ Miky Profil |
První RewriteRule nemáš ukotvený na konec (
$ ), takže zachytí i tvar /neco/neco2/ . Případně můžeš ještě přidat oběma pravidlům příznak [L] , který značí, že se adresa již dále nemá přepisovat ostatními pravidly. Příznaky se dávají na konec řádku s RewriteRule oddělené mezerou.
Mimochodem, RewriteCond se vztahuje jen k následujícímu RewriteRule, takže u druhého RewriteRule už neplatí podmínka neexistence. Navíc tam máš -f , což kontroluje existenci souboru s daným jménem, ale přepíše ti to existující adresáře s daným jménem.
|
||
koudelacek Profil * |
#3 · Zasláno: 28. 3. 2013, 17:36:07
Noo připsal jsem tam ($), přidal jsem [L], ale na /neco/neco2/ se $_GET['id'] = neco/neco2 a $_GET['sub'] = 0..
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)/$ page.php?id=$1 [L] RewriteRule ^(.*)/(.*)/$ page.php?id=$1&sub=$2 [L] |
||
koudelacek Profil * |
#4 · Zasláno: 28. 3. 2013, 18:56:58
Vyřešeno.
|
||
Davex Profil |
#5 · Zasláno: 28. 3. 2013, 19:15:24
koudelacek:
„Vyřešeno.“ Jak? Stačilo prohodit pořadí pravidel? |
||
DJ Miky Profil |
#6 · Zasláno: 28. 3. 2013, 20:56:32
Nebo by asi stačilo vyměnit
(.*) za ([^/]*) , aby pravidla nebrala lomítka.
|
||
Časová prodleva: 11 let
|
0