ЧПУ

shour_short

Новичок
Добрый день. Ребят такой вопрос. Хочу на сайт прикрутить ЧПУ. Сейчас на сайте ссылки такого плана http://site.ru/full_text.php?&id=52&hid=16&pid=3, http://site.ru/full_text.php?&id=52&pid=3, http://site.ru/full_text.php?&id=3. Причем этими параметрами get у меня также передаются активные пункты меню сайта. Хочу, чтоб ссылки были плана http://site.ru/new/subnews/news_1. Как это сделать вообще не могу понять - подрубил файл .htaccess, в который написал

Файл .htaccess

# Включаем mod_rewrite
RewriteEngine on

# Устанавливаем core.php индексным файлом
DirectoryIndex index.php

# Если файл физически не найден
RewriteCond %{REQUEST_FILENAME} !-s

# то направим на core.php с параметрами URI
RewriteRule ^(.+)$ /index.php?$1 [L]

а в index.php дописал:

PHP:
// Получаем текущий полный URL
$url = parse_url("http://".$_SERVER["HTTP_HOST"].$_SERVER['REQUEST_URI']);

// Распетрушиваем путь на «папки»
$dirs = explode('/', $url['path']);

// Парсим переменные GET в глобальный массив $_GET
isset($url['query']) && parse_str($url['query'], $_GET);

// Декодируем в UTF-8 все символы, отличные от латиницы
for ($i=1; $i<(count($dirs)-1); $i++) {
$dirs[$i]=urldecode($dirs[$i]);
}
Вот собственно такая штука. За раннее благодарен)
 

ХакИрФсимагущий

[засикречино]
RewriteRule ^new/subnews/news_([0-9]*)$ /full_text.php?&id=52&hid=16&pid=$1,
RewriteRule ^foto/subnews/news_([0-9]*)$ /full_text.php?&id=12313&hid=16&pid=$1,
итд.
а в индекс вообше ниче писть не надо только чтобы все ссылки в сайте были такого вида
http://site.ru/new/subnews/news_1.
 

ХакИрФсимагущий

[засикречино]
хотя моджете обработчик new subnews Туда написать чтобы не писать все доступные варианты на случай если вариантов очень много.
 

shour_short

Новичок
Спасибо. Ну вообще система такая: Есть три основных файла index.php, subtitle.php и full_text.php Файл index - это файл в котором switch перебирает какой id пришел, есть 1 - то includом подгружается тот контент, который нужен и автоматом загорается кнопочка О компании и т.д. в том же роде. Файл subtitle отвечает за то же самое, только он уже includами подгружает подкатегории, т.е. Нажали на кнопку "новости маркетинга", после чего вывалилось подменю в котором нажимаем например на вкладку "качествченные методы" и вот тут перенаправляемся на файл subtitle.php, где опять же id, pid и hid делает свое дело - не дает категориям и подкатегориям уйти с экрана, т.е. они находятся в состоянии активны. Ну а при нажатии на какую нибудь новость запускается full_text.php - система та же. Если кому - то не понятно, то вот сайт http://www.restartyour.name, где все видно при кликаньи на кнопки.

И вот что куда и как вставлять не пойму.

Да, забыл. Основные категории не изменны. А подкатегории и материал постоянно будут меняться, по это надо учесть еще и этот факт. Блин, сколько всего, аж страшно(
 

aspire

Новичок
преобразовуеш запрос в масив вот например функция
PHP:
$arr = preg_split("/\//", $_SERVER['REQUEST_URI'], -1, PREG_SPLIT_NO_EMPTY);
Выходит если у тебя вот такая строка: http://site.ru/new/subnews/news_1 то в масиве будет:
$arr[0] == new
$arr[1] == summenu
$arr[2] == news_1
ну и соответственно подключаеш файлы в тех местах где нужно
PHP:
include_once $_SERVER['DOCUMENT_ROOT'].$arr[0].'.php';
ну и по аналогии подгружай другие файлы. Это канешно сильно упрощенный вариант, но работать будет.
 

FRIE

Новичок
Вот офигительный сайт туда постишь свою ссылку, выбираешь как хочешь чтобы она выглядела а он тебе выдает регулярку для .htaccess. Но всётаки лучше будет изучить регулярки, так как всёравно будут возникать вопросы в дальнейшем. Сам не врубаюсь нифига )))
 
Сверху