.htaccess doesn't work, please help

The .htaccess code that I have is:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /index.php [L]
</IfModule>

Please someone tell me if I made any mistake because i don’t see any of them. I put this .htaccess code to change the url.

You’ll need to be more specific than “doesn’t work”. What URL are you typing in? What behavior are you expecting? What behavior do you actually observe?

1 Like

To be honest I follow a tutorial and I put here the Url Class and the Navigation Class. With .htaccess I have to make the menu to work. Right now only the index.php works. If I click on other menu item I get page not found.
I got to this point in the tutorial, and everything worked fine, but when I wrote the .htaccess I didn’t get a good result.

class Url {

public $key_page = 'page';
public $key_modules = array('panel');
public $module = 'front';
public $main = 'index';
public $cpage = 'index';
public $c = 'login';
public $a = 'index';
public $params = array();
public $paramsRaw = array();
public $stringRaw;











public function __construct() {
    $this->process();
}

public function process() {
    $uri = $_SERVER['REQUEST_URI'];
    if(!empty($uri)) {
        $uriQ = explode('?', $uri);     
        $uri = $uri[0];
        if (count($uriQ) > 1) {
            $this->stringRaw = $uriQ[1];
            $uriRaw = explode('&', $uriQ[1]);
            if (count($uriRaw) > 1) {
                foreach($uriRaw as $key => $row) {
                    $this->splitRaw($row);    
                }
            } else {
                $this->splitRaw($uriRaw[0]);
            }
        }
        $uri = Helper::clearString($uri, PAGE_EXT);
        $firstChar = substr($uri, 0, 1);
        if ($firstChar == '/') {
            $uri = substr($uri, 1);
        }
        $lastChar = substr($uri, -1);
        if ($lastChar == '/') {
            $uri = substr($uri, 0, -1);
        }
        if(!empty($uri)) {
            $uri = explode('/', $uri);
            $first = array_shift($uri);
            if (in_array($first, $this->key_modules)) {
                $this->module = $first;
                $first = array_shift($uri);    
            }
            $this->main = $first;
            $this->cpage = $this->main;
            if ($count($uri) > 1) {
                $pairs = array();
                foreach($uri as $key => $value) {
                    $pairs[] = $value;
                    if(count($pairs)) {
                        if (!Helper::isEmpty($pairs[1])) {
                            if ($pairs[0] == $this->key_page) {
                                $this->cpage = $pairs[1];    
                            } else if ($pairs[0] == 'c') {
                                $this->c = $pairs[1];    
                            } else if ($pairs[0] == 'a') {
                                $this->a = $pairs[1];    
                            }
                            $this->params[$pairs[0]] = $pairs[1];
                        }
                        
                        $pairs = array();    
                    }
                }
            }
        }
    }
}




public function splitRaw($item = null) {
    if (!empty($item) && !is_array($item)) {
        $itemRaw = explode('=', $item);
        if (count($itemRaw) > 1 && !Helper::isEmpty($itemRaw[1])) {
            $this->paramsRaw[$itemRaw[0]] = $itemRaw[1];    
        }
    }
}



public function getRaw($param = null) {
    if (!empty($param) && array_key_exists($param, $this->paramsRaw)) {
        return $this->paramsRaw[$param];    
    }
}



public function get($param = null) {
    if (!empty($param) && array_key_exists($param, $this->params)) {
        return $this->params[$param];    
    }
}



public function href($main = null, $params = null) {
    if (!empty($main)) {
        $out = array($main);
        if(!empty($params) && is_array(params)) {
            $out[] = $value;    
        }
    }
    return '/'.implode('/', $out).PAGE_EXT;
}




public function getCurrent($exclude = null, $extension = false) {
    $out = array();
    if ($this->modul != 'front') {
        $out[] = $this->module;    
    }
    $out[] = $this->main;
    if (!empty($this->params)) {
        if (!empty($exclude)) {
            $exclude = Helper::makeArray($exclude);
            foreach($this->params as $key => $value) {
                if (!in_array($key, $exclude)) {
                    $out[] = $key;
                    $out[] = $value;    
                }
            }
        } else {
            foreach($this->params as $key => $value) {
                    $out[] = $key;
                    $out[] = $value;    
            }
        }
    }
    $url = '/'.implode('/', $out);
    $url .= $extension ? PAGE_EXT : null;
    return $url;
}

}

class Navigation {

private $table = 'navigation';
private $table_2 = 'navigation_types';
private $table_3 = 'pages';
private $table_4 = 'pages_content';
private $table_5 = 'navigation_types_content';

private $objDb;
public $objUrl;
public $objLanguage;

public $classActive = 'active';












public function __construct($objUrl = null, $objLanguage = null) {
    $this->objUrl = is_object($objUrl) ? $objUrl : new Url();
    $this->objLanguage = is_object($objLanguage) ? $objLanguage : new Language();
    $this->Db = new Dbase();
}










public function getOne($id = null) {
    if (!empty($id)) {
        $sql = "SELECT *
                FROM `{$this->table}`
                WHERE `id` = ?";
        return $this->Db->getOne($sql, $id);
    }
}











public function active($main = null, $pairs = null, $single = true) {
    if (!empty($main)) {
        if (empty($pairs)) {
            if ($main == $this->objUrl->main) {
                return !$single ? ' '.$this->classActive : ' class="'.$this->classActive.'"';
            }
        } else {
            $exceptions = array();
            foreach($pairs as $key => $value) {                     
                $paramUrl = $this->objUrl->get($key);
                if ($paramUrl != $value) {
                    $exceptions[] = $key;
                }
            }
            if ($main == $this->objUrl->main && empty($exceptions)) {
                return !$single ? ' '.$this->classActive : ' class="'.$this->classActive.'"';
            }
        }
    }
}











public function getAllTypes() {
    $sql = "SELECT *
            FROM `{$this->table_5}`
            WHERE `language` = ?
            ORDER BY `navigation` ASC";
    return $this->Db->getAll($sql, $this->objLanguage->language);
}












public function getRecords($case = null) {
    if (!empty($case)) {
        $sql = "SELECT `n`.*, `t`.`label`, `p`.`identity`, `c`.`name`
                FROM `{$this->table}` `n`
                JOIN `{$this->table_5}` `t`
                    ON `t`.`navigation` = `n`.`type`
                JOIN `{$this->table_3}` `p`
                    ON `p`.`id` = `n`.`page`
                JOIN `{$this->table_4}` `c`
                    ON `c`.`page` = `n`.`page`
                WHERE `n`.`type` = ?
                AND `c`.`language` = ?
                AND `t`.`language` = ?
                ORDER BY `n`.`order` ASC";
        return $this->Db->getAll($sql, array($case, $this->objLanguage->language, $this->objLanguage->language));
    }
}












public function get($case = null) {
    if (!empty($case)) {
        $list = $this->getRecords($case);
        if (!empty($list)) {
            $out = array();
            switch($case) {
                case 1:
                foreach($list as $row) {
                    $item  = '<li';
                    $item .= $this->active($row['identity']);
                    $item .= '><a href="';
                    $item .= $this->objUrl->href($row['identity']);
                    $item .= '" title="';
                    $item .= $row['name'];
                    $item .= '">';
                    $item .= $row['name'];
                    $item .= '</a></li>';
                    $out[] = $item;
                }
                $out = '<ul id="navigation">'.implode('', $out).'</ul>';
                break;
                case 2:
                $i = 1;
                foreach($list as $row) {
                    $item  = '<li';
                    if ($i == count($list)) {
                        $item .= ' class="last';
                        $item .= $this->active($row['identity'], null, false);
                        $item .= '"';
                    } else {
                        $item .= $this->active($row['identity']);
                    }
                    $item .= '><a href="';
                    $item .= $this->objUrl->href($row['identity']);
                    $item .= '" title="';
                    $item .= $row['name'];
                    $item .= '">';
                    $item .= $row['name'];
                    $item .= '</a></li>';
                    $out[] = $item;
                    $i++;
                }
                $out = '<ul id="navigation-left">'.implode('', $out).'</ul>';
                break;
                case 3:
                foreach($list as $row) {
                    $item  = '<a href="';
                    $item .= $this->objUrl->href($row['identity']);
                    $item .= '" title="';
                    $item .= $row['name'];
                    $item .= '"';
                    $item .= $this->active($row['identity']);
                    $item .= '>';
                    $item .= $row['name'];
                    $item .= '</a>';
                    $out[] = $item;
                }
                $out = '<p>'.implode(' :: ', $out).'</p>';
                break;
                default:
                return null;
            }
            return !empty($out) ? '<nav>'.$out.'</nav>' : null;
        }
    }
}











public function updateOrder($id = null, $order = null) {
    if (!empty($id) && !empty($order)) {
        $sql = "UPDATE `{$this->table}`
                SET `order` = ?
                WHERE `id` = ?";
        return $this->Db->execute($sql, array($order, $id));
    }
}











public function getLast($type = null) {
    if (!empty($type)) {
        $sql = "SELECT *
                FROM `{$this->table}`
                WHERE `type` = ?
                ORDER BY `order` DESC
                LIMIT 0, 1";
        return $this->Db->getOne($sql, $type);
    }
}












public function add($type = null, $page = null) {
    if (!empty($type) && !empty($page)) {
        $last = $this->getLast($type);
        $order = !empty($last) ? $last['order'] + 1 : 1;
        $sql = "INSERT INTO `{$this->table}`
                (`type`, `page`, `order`)
                VALUES (?, ?, ?)";
        return $this->Db->insert($sql, array($type, $page, $order));
    }
}












public function remove($id = null) {
    if (!empty($id)) {
        $sql = "DELETE FROM `{$this->table}`
                WHERE `id` = ?";
        return $this->Db->execute($sql, $id);
    }
}

}

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.