Redirect 301 с категории на статью

D
На сайте с 28.06.2008
Offline
1114
675

Нужно в джумле сделать редирект с категории на статью

Redirect 301 /раздел/236-категория /раздел/236-категория/5438-статья приводит к циклу.

Вероятно нужно как то регуляркой, но я не могу понять как, не поможете?

Так тоже не срабатывает:

RewriteRule ^/раздел/236-категория$ /раздел/236-категория/5438-статья [R=301,L]

D
На сайте с 28.06.2008
Offline
1114
#1

Так тоже не катит

RewriteCond %{HTTP_HOST} ^сайт\.ru$ [NC]

RewriteRule ^/раздел/236-категория$ /раздел/236-категория/5438-статья [R=301,L]

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

RewriteRule ^раздел/236-категория$ /раздел/236-категория/5438-статья [R=301,L]

D
На сайте с 28.06.2008
Offline
1114
#3

Хм...

Dram:
Так тоже не срабатывает:
RewriteRule ^/раздел/236-категория$ /раздел/236-категория/5438-статья [R=301,L]

Один я тут разницы не вижу?

siv1987:
RewriteRule ^раздел/236-категория$ /раздел/236-категория/5438-статья [R=301,L]
J
На сайте с 20.02.2014
Offline
120
jkm
#4

Директива Redirect модуля mod_alias предназначена для перенаправления не отдельных страниц, а всего содержимого каталогов.

Пример Redirect /old /new

Результат работы:

/old => /new

/old/category => /new/category

/old/category/page => /new/category/page

Redirect 301 /раздел/236-категория /раздел/236-категория/5438-статья

Произойдет зацикливание

/раздел/236-категория/5438-статья => /раздел/236-категория/5438-статья/5438-статья

Использование RedirectMatch позволяет дейтсвовать более избирательно.

RedirectMatch 301 /раздел/236-категория/?$ /раздел/236-категория/5438-статья

Шаблон RewriteRule ^/раздел результата не даст потому что сравнение будет с адресом без начального слеша.

Вам все верно посоветовали RewriteRule ^раздел.

Подробнее тут http://habrahabr.ru/company/sprinthost/blog/129560/

D
На сайте с 28.06.2008
Offline
1114
#5
jkm:
Использование RedirectMatch позволяет дейтсвовать более избирательно.
RedirectMatch 301 /раздел/236-категория/?$ /раздел/236-категория/5438-статья

Спасибо!!! Сработал этот вариант!

J
На сайте с 20.02.2014
Offline
120
jkm
#6

Вариант с RewriteRule тоже рабочий только нужно ставить сразу после RewriteEngine On.

Для RewriteRule порядок следования правил имеет значение.

Если ставить в конец после

RewriteRule .* index.php

то редирект не сработает.

D
На сайте с 28.06.2008
Offline
1114
#7
jkm:
Вариант с RewriteRule тоже рабочий, только нужно ставить сразу после RewriteEngine On.

Так пробовал - не работало, ставил сразу после RewriteEngine On , видать Джумла вмешивалась

siv1987
На сайте с 02.04.2009
Offline
427
#8
Dram:
Один я тут разницы не вижу?

Непосвященный разницу между ними не увидит, но разница между ними есть, и в ней состоит вся суть - сработает ли редирект или нет. Ну и да, добавлять нужно после RewriteEngine и написать правильно шаблон ссылке.

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