Подскажите, как настроить редирект, чтобы ..

arsenk
На сайте с 25.09.2007
Offline
142
470

нужно прописать в .htaccess регулярное выражение так, чтобы

все урлы вида,

razdel/kategoriya/statya_1/

razdel/kategoriya/statya_2/

razdel/kategoriya/statya_3/

razdel/kategoriya/statya_4/

и т.д.

перенаправлялись 301м редиректом на урл

razdel/kategoriya/statya/

Я не силен в регулярных выражениях, так что заранее спасибо за помощь )

пс: вообще, в общем виде хочу так:

все урлы вида /..../{что_угодно}_{какая-то цифра}/ перенаправлялись на /..../{что_угодно}/

Проблема вызвана тем, что Artio JoomSef делает очень много дублей такого вида, если itemid указан в урле разный. Т.е. одна и та же страница вызывается разными путями. В итоге плодится очень много дубликатов

arsenk добавил 02.12.2009 в 13:28

Сам решил проблему с помощью php. Если кому интересно

$uri = $_SERVER[REQUEST_URI];

$host = $_SERVER[HTTP_HOST];

if ($host == "my.host.com") {

// проверяем, заканчивается ли наш урл на _{цифра}/

if ( ($uri[strlen($uri)-1] == "/") && is_numeric($uri[strlen($uri)-2]) && ($uri[strlen($uri)-3] == "_") ) {

$uri[strlen($uri)-2] = "*";

$uri[strlen($uri)-3] = "*";

$uri = str_replace('*', '', $uri);

header("HTTP/1.1 301 Moved Permanently");

header("Location: http://my.host.com".$uri);

exit();

}

// проверяем, заканчивается ли наш урл на _{цифра}{цифра}/

elseif ( ($uri[strlen($uri)-1] == "/") && is_numeric($uri[strlen($uri)-2]) && is_numeric($uri[strlen($uri)-3]) && ($uri[strlen($uri)-4] == "_") ) {

$uri[strlen($uri)-2] = "*";

$uri[strlen($uri)-3] = "*";

$uri[strlen($uri)-4] = "*";

$uri = str_replace('*', '', $uri);

header("HTTP/1.1 301 Moved Permanently");

header("Location: http://my.host.com".$uri);

exit();

}

}

Это позволяет решить проблему связки joomla + Artio JoomSef, когда последняя плодит много урлов в зависимости от разных itemid. Теперь все эти урлы ведут на 1 корректный.

Человека больше убеждают утверждения, до которых он додумался сам, чем те, до которых додумались другие

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