0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 11
|
|
1 | |
301-Редирект30.05.2014, 01:30. Показов 1710. Ответов 5
Метки нет (Все метки)
Здравствуйте, форумчане! Задача такая:
Есть сайт http://site.ru/catalog/бла-бла-бла (т.е. после /catalog/ может много что идти). Сайт давний, на многих форумах и блогах люди на него во всю ставят ссылки, например: http://site.ru/catalog/audi/100/ http://site.ru/catalog/registration http://site.ru/catalog/pages1.html и т.д. Но на какую бы страницу не ссылались, везде присутствует /catalog/, который идёт сразу после имени сайта. Домен я менять не собираюсь, разве что структура урлов в новом сайте будет абсолютно другая. И естественно, если кто по ссылкам будет переходить старым типа http://site.ru/catalog/......... - то в новом сайте у меня будет лишь 404 Not Found. Вот я и хочу, чтобы при наборе старых урлов http://site.ru/catalog/........ - мой новый .htaccess редиректил всё это в крпень сайта http://site.ru./, например: Набрал чел старый урл любого типа http://site.ru/catalog/....... - а его перенаправляло в корень: http://site.ru. Вроде тривиально, но покроме столько работы - что уже тупить начинаю. Буду благодарен всем. Добавлено через 1 час 3 минуты Надумал: RewriteRule ^catalog/ / [R=301] Вроде пашет. Но после /catalog/ может что угодно стоять, как это отределить? ^catalog/(.*) ^catalog/.+ ^catalog/?+ ^catalog/.* наверное? ????
0
|
30.05.2014, 01:30 | |
Ответы с готовыми решениями:
5
редирект 301 редирект 301 Редирект 301 301 редирект |
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 11
|
|
30.05.2014, 14:55 [ТС] | 3 |
Вы наверное не совсем поняли:
RewriteRule http://site.ru/catalog/<здесь что угодно - хоть отрывок из "Войны и Мир"> ----> всегда редиректить на http://site.ru/ [R=301] Главный критерий - что если на старой ссылке имеется в урле /catalog/ (на новом урле такого словосочетания не будет) - тут же редиректить на начальную страницу нового сайта - http://site.ru. И как-то определить - что НЕВАЖНО что чтоит в старом урле ПОСЛЕ /catalog/ - фраза /ctalog/ попалась - значит урл старый, редиректим. Просто в регулярках запутался. ^/catalog/(.*) - это вроде только лишь 1 параметр подразумевается, например, ^/catalog/pages/. А ведь в старых урлах бывает и куча параметров после /catalog/: http://site.ru/catalog/cabinet... ser/2/edit. И мне надо регулярку для .htaccessa, которой ПОФИГУ что идёт после /catalog/. Толи /catalog/* , толи /catalog/.* (вроде как читал - ТОЧКА обозначает любой символб а ЗВЁЗДОЧКА - может отсутствовать или присутствовать неограниченное число раз подряд) Запутался в конец. Помогите, ГУРУ! PS: Dr_Quake писал, что ".* со скобками, иначе регулярки не выйдет $1 для подстановки.". Дак а куда мне $1 подстанавливать? Редиректить-то будет на чистый http://site.ru/ безо всяких параметров - прям на корень сайта.
0
|
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 11
|
|
30.05.2014, 16:25 [ТС] | 5 |
"И что не так то?
RewriteRule ^catalog/(.*) /$1 [R=301]" (.*) - это всё что идёт после /catalog/. $1 - это то, что заменяется на (.*) К примеру: был урл http://site.ru/catalog/register/user/. Получается, что (.*) - это ни что иное как "register/user/". Получается урл, на который меня средиректит, получится такой: http://site.ru/register/user/ Вы прикалываетесь?
0
|
Заблокирован
|
|
30.05.2014, 17:18 | 6 |
Так если ты хочешь убить поисковики и редирить без хвоста - просто убери $1. Эффект то тот же, хоть и не будет 404.
0
|
30.05.2014, 17:18 | |
30.05.2014, 17:18 | |
Помогаю со студенческими работами здесь
6
Mod_rewrite - 301 редирект Не работает 301 редирект Не работает 301 редирект Правильный редирект 301 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |