ну главное разберись то как у тебя будит рабоать система и сделай нормальный контралируеммый ЧПУ
Я к примеру сделал так
<?php
if(!defined('dir'))die('error');
class GetInc{
static $_GET;
static $get;
static $url = array();
static $typ = 1;
static $category = 0;
function Start(){
GetInc::$_GET = trim($_SERVER['REQUEST_URI']);
GetInc::DropGet();
GetInc::ParseSystemUrl();
GetInc::ParseUrlDb(GetInc::$typ,GetInc::$category);
GetInc::CategoryUrl();
}
function DropGet(){
if(preg_match('(\?(.*))',GetInc::$_GET,$arry)){
GetInc::$_GET = str_replace($arry[0],NULL,GetInc::$_GET);
GetInc::$get = GetInc::$_GET;
}else{GetInc::$get = GetInc::$_GET;}
}
function ParseSystemUrl(){;}
function ParseUrlDb($typ=1,$category=0){
$myrow = mysql_query("SELECT * FROM friendly_url WHERE typ='".$typ."' AND category='".$category."' ORDER BY poz");
if(mysql_num_rows($myrow)){
while($result = mysql_fetch_assoc($myrow)){
switch($result['method']){
case'1':{
GetInc::DBParseTyp1($result['url'],$result['array_name']);
break;}
case'2':{
GetInc::DBParseTyp2($result['url'],$result['array_name']);
break;}
default:{
echo '<p><b>При обработке url Был задан неправельный метод обработки</b><br>
Информация:<br>
Ид => "'.$result['id'].'"<br>
Метод => "'.$result['method'].'"<br>
Описание => "'.$result['descriptions'].'"
</p>';
}
}
}
}
}
function DBParseTyp1($url,$array_name){
if(preg_match('('.$url.')',GetInc::$_GET,$Array)){
GetInc::$_GET = str_replace($Array[0],NULL,GetInc::$_GET);
GetInc::$url[$array_name] = end($Array);
}
}
function DBParseTyp2($url,$array_name){
if(preg_match('#'.$url.'#',GetInc::$_GET,$Array)){
GetInc::$_GET = str_replace($Array[1],NULL,GetInc::$_GET);
$Array[1]{0}=NULL;
GetInc::$url[$array_name] = end($Array);
}
}
function CategoryUrl(){
if(GetInc::$_GET=='/'){GetInc::$_GET='index';}
if(GetInc::$_GET{0}=='/'){GetInc::$_GET{0}=NULL;}
GetInc::$url['category'] = explode('/',trim(GetInc::$_GET));
if(count(GetInc::$url['category']) ==1 & GetInc::$url['category'][0]==''){GetInc::$url['category'][0]='index';}
}
}
Скажу сразу мой проэкт не имеет лимита по вложености
http://site.name/category/.../.../.../.../.../..
Примерно так выглядит результат обработки класса
урл http://-----.com/tapocki/fsefsefe
Array
(
[category] => Array
(
[0] => tapocki
[1] => fsefsefe
)
)