webForumDet fria alternativet

mod_rewrite problem i Apache2

1 svar · 407 visningar · startad av startail

startailMedlem sedan sep. 2000159 inlägg
#1

Hej,

Jag har lite problem med mod_rewrite i Apache 2.0.

Jag frösöker skriva om en URL från www.domän.com/sida/action/id till att bli www.domän.com/index.php?sida=$sida&action=$action&id=$id.

Jag har löst detta med att använda mig av följade regel

RewriteRule ^([^.]+)/([^.]+)/([^.]+) /index.php?page=$1&action=$2&id=$3 [L]

Dock har jag ett problem. Skickar man inte med allting, utan bara tex sida och action så funkar inte regeln. Apache reagerar helt enkelt inte på regeln.
Hur kan jag lösa så att den reagerar på om man har följande:

  • sida
  • sida och action
  • sida, action och id
startailMedlem sedan sep. 2000159 inlägg
#2

Löste problemet i PHP ist. Kör denna regel i mod_rewrite och ett php script

RewriteRule ^([^.]+) /index.php?data=$1 [L]
function _getData($data)
    {
    $_data = explode("/",$data);
    for($c=0;$c < count($_data);$c++)
        {
        if($_data[$c] != "")
            {
                if($c == 0) { $__data['page'] = $_data[$c]; }
                elseif($c == 1) { $__data['action'] = $_data[$c]; }
                elseif($c == 2) { $__data['id'] = $_data[$c]; }
                elseif($c > 2) { $__data['id'] .= ":{$_data[$c]}"; }
            }
        }
    return $__data;
    }

Hoppas det kan hjälpa andra.

123 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
120 ms — hämta tråd, inlägg och bilagor (db)