Forum » Programiranje » [.htacces] [regex] Kako ohraniti $_GET podatke?
[.htacces] [regex] Kako ohraniti $_GET podatke?
dunker ::
Lep pozdrav vsem skupaj!
Pri neki novi spletni strani, ki jo izdelujem, uporabljam Mod Rewrite za prepisovanje URL naslovov. Moj .htaccess izgleda takole:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z\-]*)$ index.php?include=$1
Torej, če datoteka ali mapa, za katero server dobi zahtevek, ne obstaja, se zadeva prepiše na predpisani način. Če se postavimo na
domain. com/login,
se zahtevek prepiše v
domain. com/index.php?include=login.
Zelo rad pa bi ohranil tudi morebitne podane $_GET parametre, torej query string. V bistvu hočem doseči tole:
RewriteRule ^([0-9a-zA-Z\-]*)?.*$ index.php?include=$1&$2
Če zahtevek vsebuje ?, bi rad del pred ? prepisal tako kot prej, del po vprašaju pa bi enostavno pripel na konec novega zahtevka, da se query string ohrani. Po nekaj igranja sem opazil, da se query string nahaja v {QUERY_STRING}. Dlje pa žal ne pridem.
Torej, doseči hočem, da se tudi
domain .com/login?succeeded=1
prepiše v
domain .com/index.php?include=login&succeeded=1.
Mi zna kdo spremenit moj zgornji .htaccess tako, da bo zadeva delovala? Hvala vsem vnaprej!
P.S.: Zapisani presledki v "domain .com" so zato, da forum ne ustvari neveljavnih URLjev.
Anže
Pri neki novi spletni strani, ki jo izdelujem, uporabljam Mod Rewrite za prepisovanje URL naslovov. Moj .htaccess izgleda takole:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z\-]*)$ index.php?include=$1
Torej, če datoteka ali mapa, za katero server dobi zahtevek, ne obstaja, se zadeva prepiše na predpisani način. Če se postavimo na
domain. com/login,
se zahtevek prepiše v
domain. com/index.php?include=login.
Zelo rad pa bi ohranil tudi morebitne podane $_GET parametre, torej query string. V bistvu hočem doseči tole:
RewriteRule ^([0-9a-zA-Z\-]*)?.*$ index.php?include=$1&$2
Če zahtevek vsebuje ?, bi rad del pred ? prepisal tako kot prej, del po vprašaju pa bi enostavno pripel na konec novega zahtevka, da se query string ohrani. Po nekaj igranja sem opazil, da se query string nahaja v {QUERY_STRING}. Dlje pa žal ne pridem.
Torej, doseči hočem, da se tudi
domain .com/login?succeeded=1
prepiše v
domain .com/index.php?include=login&succeeded=1.
Mi zna kdo spremenit moj zgornji .htaccess tako, da bo zadeva delovala? Hvala vsem vnaprej!
P.S.: Zapisani presledki v "domain .com" so zato, da forum ne ustvari neveljavnih URLjev.
Anže
dunker ::
No, sem že odkril rešitev. Za prihodnje rodove, obstoječi query string se pripne z zastavico [QSA].
Torej, edina sprememba v mojem .htaccess fajlu je bila:
RewriteRule ^([0-9a-zA-Z\-]*)$ index.php?include=$1 [QSA]
Torej, edina sprememba v mojem .htaccess fajlu je bila:
RewriteRule ^([0-9a-zA-Z\-]*)$ index.php?include=$1 [QSA]
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | mod_rewrite - prosim za nasvetOddelek: Programiranje | 1405 (1281) | carota |
» | brez .html končniceOddelek: Izdelava spletišč | 1916 (1356) | MisterR |
» | URL in struktura datotek na serverjuOddelek: Izdelava spletišč | 1466 (1211) | technolog |
» | htaccess - ce obstaja - serviraj, v nasprotnem primeru ....Oddelek: Izdelava spletišč | 1097 (1017) | Lion29 |
» | Mod rewriteOddelek: Izdelava spletišč | 1374 (1168) | bluefish |