mod_rewrite problem i Apache2

Webbservrar

1 svar · 426 visningar · startad av startail

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

238 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
114 ms — deklarationer (db)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)
115 ms — ändringar (db)