Avatar billede mrfunder Nybegynder
13. august 2008 - 15:44 Der er 2 kommentarer

Hjælp til Apache URL rewrite

Hej Eksperter.

Jeg bruger i øjeblikket en url rewrite der gør url'en 'flottere' i mit forum:
minside/forum/kategori/7/75/

Det virker i øjeblikket efter hensigten, men jeg skal nu til at lave således jeg kan sortere indlæg i mit forum, herved skulle url'en blive noget lign.:
minside/forum/kategori/7/75/?sort=123&key=asc

Dette virker dog ikke idet min url faktisk bliver skrevet om, og derfor kan jeg ikke fange via en sort eller key via GET i PHP.

Hvordan kan jeg lave dette?

På forhånd tak



RewriteEngine on
RewriteCond %{REQUEST_URI} !-f

RewriteRule ^forum/kategori/([0-9]+)/*([0-9]*) forum/kategori/index.php?cat_id=$1&offset=$2 [L]
Avatar billede showsource Seniormester
14. august 2008 - 22:09 #1
Jeg har selv en side hvor jeg også bruger mod_rewrite til at lave "subdirs" og samme "problem" som dit.
Jeg har så brygget en php funktion sammen til at tjekke om en given var er sat i url'en

function in_request($var) {

// $var er f.eks. "?sort"
// testfile bruger jeg til at teste div. ting med.
// "go" er den GET var som jeg kan få fat i.
// Værdien af den søgte $var bliver så returneret.
// F.eks. 123&key=asc
// Og hvis der som i ex. faktisk kan forventes en var mere, så tjek om den findes
// hvis ellers 1. tjek returnerer true
// Men den trænger vist til "en kærlig hånd", den funktion !


    if(basename($_SERVER["PHP_SELF"]) != testfile && !isset($_GET[go])) {
    return false;
    }

    if(basename($_SERVER["PHP_SELF"]) == testfile) {
        $fjern = (strlen(userdir)+strlen(testfile));
    }else{
        $fjern = (strlen(userdir)+strlen($_GET[go])+1);
    }

    $string = substr(strtolower($_SERVER["REQUEST_URI"]), $fjern);


        if(false !== ($p = strpos($string, $var))) {
        return substr($string, ($p+strlen($var)));
        }

    return false;

}
Avatar billede showsource Seniormester
14. august 2008 - 22:15 #2
mjaahhh, sidder lige og kikker, og jeg bruger så:

    if(false != ($g_id = in_request("g="))) {

altså smider " = " med som $var

1.5 år siden jeg lavede noget på den side sidst! :O(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester