- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день.
Что то не получается сделать ЧПУ через Хтачес.
Есть страница: /buy.php?group_id=1 (они все так идут, только в конце естественно цифры 2,3 и т.д.)
Страниц не много, около 20.
Погуглил и перепробовал разные варианты, не получается.
Есть: /buy.php?group_id=1
Нужно к примеру: /vasy.html (или .php я хз).
Делал так:
RewriteEngine On
RewriteRule ^vasy/(.*).php$ buy.php?group_id=1 [L]
Другие варианты:
RewriteRule ^vasy.php+$ buy.php?group_id=1 [QSA]
RewriteRule ^buy.php?group_id=1/?$ vasy.php [QSA]
Как сделать?)) Помогите)
ПыСы
Движок фиг поймешь, видимо самопис.
RewriteEngine On
RewriteRule ^vasya\.html$ buy.php?group_id=1 [L]
RewriteRule ^petea\.html$ buy.php?group_id=2 [L]
Или есть смысл написать одно регулярное выражение, а в скрипте buy.php разбирать и присвоить в массиве $_GET - group_id
Cкорей всего в скрипте $_GET['group_id'] уже и так разбирается, но только как число, поэтому в htaccess надо прописать примерно такой код:
теперь запрос типа site.com/5.html будет переадресован на site.com/buy.php?group_id=5
а если нужно, что бы урлы были такого вида: site.com/vasya.html, то надо скрипт править, что бы он выводил данные не по id, а по имени или названию.
Так, видимо надо скрипт править.
Ни один из выше предложенных вариантов не подошел.
Сложно там вообще что о править? Не силен в этом. Урлы желательно такого вида что бы были: site.com/vasya.html
Вот сам скрипт buy.php:
<?
require('init.php');
$group_id = intval($_GET['group_id']);
$group_id_w = $_GET['group_id_w'];
$result = unserialize(GetItemsGroup());
if ($group_id <> '')
{
$is_grp = 1;
$new_result[$group_id] = $result[$group_id];
$result = $new_result;
}
elseif ($group_id_w <> '')
{
$is_grp = 2;
foreach ($result as $group_id => $group_val)
{
if ($group_val['pagename'] == $group_id_w)
{
$new_result[$group_id] = $result[$group_id];
$result = $new_result;
break;
}
}
}
$group_arr = array();
$item_arr = array();
foreach ($result as $group_id => $group_val)
{
$group_arr[$group_id]['title'] = $group_val['title'];
$group_arr[$group_id]['title_small'] = $group_val['title_small'];
$group_arr[$group_id]['subtitle'] = $group_val['subtitle'];
$group_arr[$group_id]['description'] = $group_val['description'];
$group_arr[$group_id]['minprice'] = $group_val['minprice'];
$group_arr[$group_id]['img_big'] = $group_val['img_big'];
$group_arr[$group_id]['img_small'] = $group_val['img_small'];
$group_arr[$group_id]['package'] = $group_val['package'];
$group_arr[$group_id]['cf1'] = $group_val['cf1'];
$group_arr[$group_id]['cf2'] = $group_val['cf2'];
$group_arr[$group_id]['cf3'] = $group_val['cf3'];
$result1 = unserialize(GetItems());
if ($group_id <> '')
{
$new_result[$group_id] = $result1[$group_id];
$result1 = $new_result;
}
foreach ($result1 as $group_id => $group_val)
{
foreach ($group_val as $item_id => $item_val)
{
$item_arr[$group_id][$item_id]['title'] = $item_val['title'];
$item_arr[$group_id][$item_id]['kolvo'] = $item_val['kolvo'];
$item_arr[$group_id][$item_id]['price_per_item'] = $item_val['price_per_item'];
$item_arr[$group_id][$item_id]['description'] = $item_val['description'];
$item_arr[$group_id][$item_id]['price'] = $item_val['price'];
$item_arr[$group_id][$item_id]['img'] = $item_val['img'];
$item_arr[$group_id][$item_id]['is_bonus'] = $item_val['is_bonus'];
$item_arr[$group_id][$item_id]['is_free_shipping'] = $item_val['is_free_shipping'];
$item_arr[$group_id][$item_id]['cf1'] = $item_val['cf1'];
$item_arr[$group_id][$item_id]['cf2'] = $item_val['cf2'];
$item_arr[$group_id][$item_id]['cf3'] = $item_val['cf3'];
}
}
}
require('tpl/buy.tpl.php');
?>
А так?
<?
require('init.php');
$group_id = intval($_GET['group_id']);
// вставлять сюда
$group_id_w = $_GET['group_id_w'];
Вариант спорный по красоте и оптимальности, но вполне работоспособен:
в .htaccess
RewriteRule ^vasya.html$ /buy.php [L]
А так?
Неа, не работает.
Сейчас вариант Ивана попробую.
А так?
Кстати, если "взлетит" - вариант ИМХО более оптимальный.. (в данном случае)..
А в общем (когда всё подряд редиректится на index.php) - по схеме ->[страница - модуль+данные] (по сути - роутинг) можно решить без лишних движений в .htaccess-е
ivan-lev, не помогло. Вставил все как написали.
Redbaron_chaos, что "не так"..
редирект не происходит? Или страница не выводится? Куда редирект лёг? В какое место .htaccess-а в смысле..
Есть ли строчка
p.s. изврат, конечно, ещё тот.. через форум ЧПУ "прикручивать" :)
Redbaron_chaos, что "не так"..
редирект не происходит? Или страница не выводится? Куда редирект лёг? В какое место .htaccess-а в смысле..
Есть ли строчка
p.s. изврат, конечно, ещё тот.. через форум ЧПУ "прикручивать" :)
не было RewriteBase /, поставил)
Короче вообще ничего не происходит, как были старые урлы так и остались.))
Ладно господа, спасибо за помощь, фиг с ним. Не так уж критично. Просто думал все просто будет, а оно вон как.
Всем плюшку раздал))