ЧПУ через Хтачес, помогите сделать

12
Redbaron _chaos
На сайте с 12.08.2009
Offline
667
1322

Добрый день.

Что то не получается сделать ЧПУ через Хтачес.

Есть страница: /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]

Как сделать?)) Помогите)

ПыСы

Движок фиг поймешь, видимо самопис.

Гемблинг, беттинг, крипта на весь мир в 3snet, 1500+ офферов. ( https://clck.ru/TdZLM ) = = CPA.HOUSE - Топовая CPA сеть ( https://clck.ru/34Swci )
siv1987
На сайте с 02.04.2009
Offline
427
#1

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

S
На сайте с 05.04.2013
Offline
19
#2

Cкорей всего в скрипте $_GET['group_id'] уже и так разбирается, но только как число, поэтому в htaccess надо прописать примерно такой код:


RewriteEngine On
RewriteRule ^([0-9]+)\.html$ buy.php?group_id=$1 [L]

теперь запрос типа site.com/5.html будет переадресован на site.com/buy.php?group_id=5

а если нужно, что бы урлы были такого вида: site.com/vasya.html, то надо скрипт править, что бы он выводил данные не по id, а по имени или названию.

Redbaron _chaos
На сайте с 12.08.2009
Offline
667
#3

Так, видимо надо скрипт править.

Ни один из выше предложенных вариантов не подошел.

Сложно там вообще что о править? Не силен в этом. Урлы желательно такого вида что бы были: 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');

?>

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#4

А так?


RewriteEngine On
RewriteRule ^vasya\.html$ /buy.php?group_id=1 [L]
Подпись))
IL
На сайте с 20.04.2007
Offline
435
#5
Redbaron_chaos:
<?
require('init.php');
$group_id = intval($_GET['group_id']);
// вставлять сюда

$group_id_w = $_GET['group_id_w'];

Вариант спорный по красоте и оптимальности, но вполне работоспособен:


$url2id = array (
'/vasya.html'=>1,
'/petya.html'=>2,
);
if (isset ($url2id[$_SERVER['REQUEST_URI']]))
$group_id = $url2id[$_SERVER['REQUEST_URI']];

в .htaccess

RewriteRule ^vasya.html$ /buy.php [L]

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
Redbaron _chaos
На сайте с 12.08.2009
Offline
667
#6
Милованов Ю.С:
А так?

RewriteEngine On
RewriteRule ^vasya\.html$ /buy.php?group_id=1 [L]

Неа, не работает.

Сейчас вариант Ивана попробую.

IL
На сайте с 20.04.2007
Offline
435
#7
Милованов Ю.С:
А так?

Кстати, если "взлетит" - вариант ИМХО более оптимальный.. (в данном случае)..

А в общем (когда всё подряд редиректится на index.php) - по схеме ->[страница - модуль+данные] (по сути - роутинг) можно решить без лишних движений в .htaccess-е

Redbaron _chaos
На сайте с 12.08.2009
Offline
667
#8

ivan-lev, не помогло. Вставил все как написали.

IL
На сайте с 20.04.2007
Offline
435
#9

Redbaron_chaos, что "не так"..

редирект не происходит? Или страница не выводится? Куда редирект лёг? В какое место .htaccess-а в смысле..

Есть ли строчка

 RewriteBase /

p.s. изврат, конечно, ещё тот.. через форум ЧПУ "прикручивать" :)

Redbaron _chaos
На сайте с 12.08.2009
Offline
667
#10
ivan-lev:
Redbaron_chaos, что "не так"..
редирект не происходит? Или страница не выводится? Куда редирект лёг? В какое место .htaccess-а в смысле..
Есть ли строчка
 RewriteBase /

p.s. изврат, конечно, ещё тот.. через форум ЧПУ "прикручивать" :)

не было RewriteBase /, поставил)

Короче вообще ничего не происходит, как были старые урлы так и остались.))

Ладно господа, спасибо за помощь, фиг с ним. Не так уж критично. Просто думал все просто будет, а оно вон как.

Всем плюшку раздал))

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий