[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не получается сделать чпу mod_rewrite
Братуха
В общем пару месяцев назад я здесь скачал хороший пример сайта. Он устроен сле дующим образом: в корне сайта есть файл index.php в нем есть скрипт вот он
switch($GET['page'])  
{
case 'main':
include './modules/main/router.php';
$page = $GET['id'];
break;
case 'register':
include './modules/register/router.php';
break;
case 'order':
include './modules/order/router.php';
break;
case 'category':
include './modules/category/router.php';
break;
case 'info':
include './modules/info/router.php';
break;

default:
include './modules/main/router.php';
break;
}

в браузерной строке передается GET значение page и в зависимости от этого подключается router.php
Дальше в нем видим это
    if($GET['rem'] && file_exists('./modules/'. $modul .'/'. $GET['rem'] .'_controller.php'))
include './modules/'. $modul .'/'. $GET['rem'] .'_controller.php';
else
{
header("HTTP/1.1 404 Not Found");
exit(file_get_contents('./404.html'));
}

include './modules/'. $modul .'/view.php';

тут используется вторая GET переменная rem, подключается контролер (как ВЫ понимаете у меня название контролеров совпадает с переменной rem и окончания _controller.php ), после контролера подключается view.php.
В нем мы подключаем нужный нам шаблон вот таким способом
switch($GET['rem'])
{
case 'registration':
include './skins/tpl/register/show.tpl';;
break;

case 'activate':
include './skins/tpl/register/form_activate.tpl';
break;
.................................................

default:
include './skins/tpl/register/form_autorize.tpl';
}

в файле .htaccess раньше было прописано вот что
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
у меня стоит задача сделать из такой вот ссылки
http://stail.ru/category/tasks_category?ca...e_uslugi&page=1
вот такую http://stail.ru/category/tasks_category/bitovie/1
проблема в том, что http://stail.ru/category/tasks_category уже преобразована и уже к ней в браузерной строке я добавляю get переменные. Что я сделал. В .htaccess я заменил все на это

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([A-z]+)/([A-z]+)/?$ index.php?page=$1&rem=$2 [L,QSA]
и затем попытался сделать вот так
RewriteRule ^category/tasks_category/([A-z]+)/([0-9]+)/?$ category/tasks_category?cat=$1&page=$2 [QSA,L]
но ничего не вышло, а если заходить по старому адресу, например http://stail.ru/category/tasks_category?ca...e_uslugi&page=1, пишет что такой странички не существует, но самое интересное что я попробовал прописать правило для другой странички вот оно
RewriteRule ^register/personal_list/([0-9]+)/?$ register/personal_list?id=$1 [L] 
В этом случае все работает, почему так получается? Помогите решить проблему уже 4-тый день мучаюсь. Подскажите хоть что нибудь может надо изменить структуру сайта. Зарание ОРГОМЕННОЕ СПАСИБО.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.