Archívum - Jún 4, 2012
RewriteCond és Rule paraméter segítség
Sziasztok!
Előre szólok hogy MŰKÖDIK csak nem tudom miért :)
Valaki magyarázza el nekem hogy a RewriteCond hogyan alkalmazható mert én nem értem :(
Leírás:
Van a domainem.hu, itt ugye megnyílik az index.php.
Ha a page változó kapott értéket akkor az a php oldal töltődik be, ha nem akkor a fooldal.php
Az oldalon "dinamikus" url-nél így néznek ki a varriációk:
domain.hu/index.php?page=fooldal
domain.hu/index.php?page=elso¶m1=1
domain.hu/index.php?page=$1¶m1=$2¶m2=$3&mappa=$4&kep=$5
Van admin oldal is az a domainem.hu/admin (itt ugye az admin mappában lévő index.php nyílik meg)
Itt a htaccess is:
A problémám:
1. Van az első kettő RewriteCond itt ugye azt ellenőrizzük hogy a page változó értékének nevével létezik-e file vagy mappa?
1b. Honnan tudja hogy a page-t kell ellenőrizni és nem a param1-et?
1c. Ha van mappa vagy file akkor mi történik? Semmi? Hol az "else" ág?
1d. Ha nem létezik akkor lefutnak a rule-ok.
2. Ha teljesül az első Rule akkor az, ha nem akkor a második, itt rögötön jön a kérdés, hogy kötelező-e az "L" paraméter és ha igen, miért?
3. Lehet-e "ágaztatni" a RewriteCond-okat? Pl (csak példaként):
4. Ha a legelső htaccess-t veszem alapul akkor ha olyat kap hogy oldalam.hu/admin kell-e lekezelni, vagy mivel van ilyen mappa bedob automatikusan a mappába?
Előre is köszönöm a fejtágítást!
■ Előre szólok hogy MŰKÖDIK csak nem tudom miért :)
Valaki magyarázza el nekem hogy a RewriteCond hogyan alkalmazható mert én nem értem :(
Leírás:
Van a domainem.hu, itt ugye megnyílik az index.php.
Ha a page változó kapott értéket akkor az a php oldal töltődik be, ha nem akkor a fooldal.php
Az oldalon "dinamikus" url-nél így néznek ki a varriációk:
domain.hu/index.php?page=fooldal
domain.hu/index.php?page=elso¶m1=1
domain.hu/index.php?page=$1¶m1=$2¶m2=$3&mappa=$4&kep=$5
Van admin oldal is az a domainem.hu/admin (itt ugye az admin mappában lévő index.php nyílik meg)
Itt a htaccess is:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-]+)$ index.php?page=$1 [NC,L]
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)$ index.php?page=$1¶m1=$2¶m2=$3&mappa=$4&kep=$5 [NC,L]
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-]+)$ index.php?page=$1 [NC,L]
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)$ index.php?page=$1¶m1=$2¶m2=$3&mappa=$4&kep=$5 [NC,L]
</IfModule>
A problémám:
1. Van az első kettő RewriteCond itt ugye azt ellenőrizzük hogy a page változó értékének nevével létezik-e file vagy mappa?
1b. Honnan tudja hogy a page-t kell ellenőrizni és nem a param1-et?
1c. Ha van mappa vagy file akkor mi történik? Semmi? Hol az "else" ág?
1d. Ha nem létezik akkor lefutnak a rule-ok.
2. Ha teljesül az első Rule akkor az, ha nem akkor a második, itt rögötön jön a kérdés, hogy kötelező-e az "L" paraméter és ha igen, miért?
3. Lehet-e "ágaztatni" a RewriteCond-okat? Pl (csak példaként):
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule blablabla
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule blablabla
# továbbra sem tudom hogy van az "else" ág
RewriteRule blablabla
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule blablabla
# továbbra sem tudom hogy van az "else" ág
4. Ha a legelső htaccess-t veszem alapul akkor ha olyat kap hogy oldalam.hu/admin kell-e lekezelni, vagy mivel van ilyen mappa bedob automatikusan a mappába?
Előre is köszönöm a fejtágítást!