webForumDet fria alternativet

mod_rewrite problem i Apache2

Webbservrar

1 svar · 407 visningar · startad av startail

Medlem sedan sep. 2000155 inlägg
Frågan#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
Medlem sedan sep. 2000155 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.

268 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)