Htaccess - összetett query string feldolgozás

Htaccess - összetett query string feldolgozás
2009-11-16T08:43:22+01:00
2009-11-16T20:53:02+01:00
2022-10-26T23:05:38+02:00
szantogeri
Sziasztok!

Van egy könyvtáram, amiben van egy index.php. Ez a query string-ben kapja meg, hogy éppen mit kell csinálnia.

Az index.php ilyen hivatkozások vannak:
index.php?page=akarmi&id=akarmi2&kategoria=akarmi3
index.php?kategoria=akarmi3
index.php?id=akarmi2&kategoria=akarmi3

Tehát nem biztos, hogy mindig egyenlő számú és nevű paraméter van.

Erre szeretnék egy olyan htaccess megoldást, ami:
index.php?page=akarmi&id=akarmi2&kategoria=akarmi3
page-akarmi/id-akarmi2/kategoria-akarmi3
index.php?kategoria=akarmi3
kategoria-akarmi3
index.php?id=akarmi2&kategoria=akarmi3
id-akarmi2/kategoria-akarmi3

Így nem okoz problémt az, ha pl van olyan oldal, ahol a page paraméter nem létezik.

"id-akarmi2" egy ilyen blokkot mindig balról jobbra kellene felfűzni az első "-"ig. A "-" karakter előtti lenne a paraméter, a mögötti pedig az érték.

Ez kivitelezhető?

Köszönöm
Mutasd a teljes hozzászólást!

  • Mutasd a teljes hozzászólást!
  • Köszönöm, ez kell nekem:

    <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{QUERY_STRING} ^(\w+)=(\w+)$ RewriteRule ^/path /path/%1/%2 </IfModule>

    Próbálkoztam átírni, de nem boldogulok.
    1, Itt van ez a path mappa. Nekem nem kell mappába mutatnia, ahol a htaccess van, ott van az index fájl is.
    2, Hogyan lehet hozzátenni még egy paramétert?
    Note that this particular example will work only for a single var=val pair containing

    Ha látom az elvet, akkor már menni fog az x darab hozzárakása.

    Köszi
    Mutasd a teljes hozzászólást!

  • pl:

    RewriteBase / RewriteCond %{QUERY_STRING} ^(\w+)=(\w+)&(\w+)=(\w+)$ [NC] RewriteRule ^user.php$ user/%1/%2/%3/%4? [NC,R=301,L] RewriteRule ^user/(\w+)/(\w+)/(\w+)/(\w+)$ user.php?$1=$2&$3=$4 [L]

    Így?

    Egy jó oldal: mod_rewrite generator
    Mutasd a teljes hozzászólást!
  • RewriteBase / RewriteCond %{QUERY_STRING} ^(\w+)=(\w+)&(\w+)=(\w+)$ [NC] RewriteRule ^user.php$ user/%1/%2/%3/%4? [NC,R=301,L]

    Ezt nem tudom működésre bírni.

    RewriteRule ^user/(\w+)/(\w+)/(\w+)/(\w+)$ user.php?$1=$2&$3=$4 [L]

    Ezzel pedig az a baj, ha csak egy paraméter van, akkor 404-es hibát dob.
    Lehet valami if-et irni a htaccess-be? Sajnos nem ismerem a szintaktikat. Tehát ha 1 paraméter van akkor egyeset csinál, ha kettő, akkor kettőt és így tovább.


    Amikor htacces van, akkor hogyan lehet nem relatív hivatkozásokat használni?
    Mondjuk ha lenne x paraméter akkor x ../tennék a linkbe, de itt pont a baj az, hogy nem tudjuk a paraméterek számát, így a plusz mappa mélységeket sem.
    Te, hogy szoktad megoldani?
    href-be minding http:// relatív hivatkozást írsz? Fejlesztésnél elég kellemetlen.

    Köszönöm
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd