Редирект динамической страницы 3-го уровня

12
InLessa
На сайте с 18.10.2012
Offline
55
1052

Добрый день! Подскажите, каким может быть редирект с динамической страницы 3-го уровня вложенности на статическую. Все найденные мною материалы для 1-го уровня, поэтому очень нужна помощь. Пример:

с site.ru/catalog/tovar/?_бессымсленныйнаборбукф

на site.ru/catalog/tovar

Бороться, искать, найти и.. перепрятать.
I
На сайте с 28.03.2011
Offline
37
#1

вот вам напоиграться :)

http://www.htaccessredirect.net/

Помогаю не только словом.. (/ru/forum/830720)
InLessa
На сайте с 18.10.2012
Offline
55
#2
imtod:
вот вам напоиграться :)

http://www.htaccessredirect.net/

Наигралась, спасибо). Полезный генератор, но не в моем случае:(

I
На сайте с 28.03.2011
Offline
37
#3

а вот так попробуйте


Options +FollowSymlinks
RewriteEngine on
rewriterule ^/catalog/tovar/(.*) /catalog/tovar?r=$1 [r=301,nc]
InLessa
На сайте с 18.10.2012
Offline
55
#4
imtod:
а вот так попробуйте

Не работает =( Даже если бы заработало, там на следующем уровне тоже странички рабочие есть

R
На сайте с 18.12.2009
Offline
92
#5

Зачем .htaccess? Можно ведь и на php, например.


$array = explode('/', $_SERVER['REQUEST_URI']);
if(count($array) > 3) {
//если излишняя вложенность
header('Location: /' . $array[1] . '/' . $array[2]);
}

I
На сайте с 28.03.2011
Offline
37
#6
InLessa:
Не работает =( Даже если бы заработало, там на следующем уровне тоже странички рабочие есть

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

InLessa
На сайте с 18.10.2012
Offline
55
#7
rerighter:
Зачем .htaccess? Можно ведь и на php, например.

Через php никогда не настраивала, сейчас буду искать, как. Спасибо)

imtod:
я предполагаю у вас там куча других правил. возможно срабатывает какое-то из них раньше.

100% нет.

[Удален]
#8

Была похожая проблема.. но мне нужно было сохранить хвост, помогло это:


RewriteEngine ON
RewriteCond %(HTTP_HOST) ^site\.ru$ [NC]
RewriteRule ^site.ru/catalog/tovar/(.*)$ http://site.ru/catalog/tovar/$1 [L,R=301]

по идее, чтобы убрать хвост нужно написать так:

 

RewriteEngine ON
RewriteCond %(HTTP_HOST) ^site\.ru$ [NC]
RewriteRule ^site.ru/catalog/tovar/(.*)$ http://site.ru/catalog/tovar/ [L,R=301]

То есть просто не подставлять то что сохранили в $1

Могу быть не прав. :o

InLessa
На сайте с 18.10.2012
Offline
55
#9
zopaz:
Была похожая проблема.. но мне нужно было сохранить хвост, помогло это:

RewriteEngine ON
RewriteCond %(HTTP_HOST) ^site\.ru$ [NC]
RewriteRule ^site.ru/catalog/tovar/(.*)$ http://site.ru/catalog/tovar/$1 [L,R=301]

по идее, чтобы убрать хвост нужно написать так:
 

RewriteEngine ON
RewriteCond %(HTTP_HOST) ^site\.ru$ [NC]
RewriteRule ^site.ru/catalog/tovar/(.*)$ http://site.ru/catalog/tovar/ [L,R=301]

То есть просто не подставлять то что сохранили в $1
Могу быть не прав. :o

увы :( Ошибка 500

siv1987
На сайте с 02.04.2009
Offline
427
#10

Добавить после RewriteEngine On

RewriteCond %{QUERY_STRING} !^$

RewriteRule ^([^/]+/[^/]+/)$ /$1? [R=301,L]

12

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