301 редирект с подраздела на главную

20
На сайте с 28.10.2009
Offline
145
880

ДОбрый день. Имеем вордпресс в вордпрессе.

То есть

site.ru - вордпресс

site.ru/site1 - site1 - вложенный вордпресс (своя папка и струкрура, своя бд)

site.ru/site2 - site2 - вложенный вордпресс (своя папка и струкрура, своя бд)

Необходимо сделать редиректы с site.ru/site1, site.ru/site2 -> на site.ru

Но вся соль в том, что адреса:

site.ru/site1/category
site.ru/site2/category/post

- должны работать.

Пробовал через .htaccess, получается только полностью редирект с site.ru/site2/category/post -> site.ru/category/post

Может сделать редирект в мета-тегах средствами вордпресс, но не хочется для этого ставить отдельно плагин.

Криптобиржа для начинающих, есть недорогой вывод на веб-мани и Яндекс деньги, P2p ( https://gclnk.com/nf5NDpSp )
20
На сайте с 28.10.2009
Offline
145
#1

Тишина. Отпишусь о решении, может пригодится кому.

Так как движок вордпресс в вордпрессе, то возникли сложности. Во-первых редирект удалось настроить через .htaccess, но редирект работал криво. То есть страницу перебрасывало, а ответ сервера все-равно был 200. А надо было перекинуть весь вес, поэтому данное решение не устраивало.

Оптимальным оказалось внедрение в код.

<?php

if($_SERVER['REQUEST_URI'] == '/information/') {

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

header('Location: http://site.ru/');

exit();

}

?>

Этот вариант и перебрасывает, и ответ сервера возвращает правильный (301).

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

Тоже может быть кому пригодится

RewriteEngine On

RewriteRule ^(site1|site2)/$ / [R=301,L]

добавить в корневой htaccess (site.ru/.htaccess) и после RewriteEngine если он там есть

20
На сайте с 28.10.2009
Offline
145
#3
siv1987:
Тоже может быть кому пригодится

RewriteEngine On
RewriteRule ^(site1|site2)/$ / [R=301,L]

добавить в корневой htaccess (site.ru/.htaccess) и после RewriteEngine если он там есть

У меня такой вариант не прокатил. Возможно потому как для каждого вордпресса в корне лежит свой htaccess. Редирект происходил, но сервер отдавал 200 код.

Константин Валентинович
На сайте с 23.11.2013
Offline
64
287_08:
Тишина. Отпишусь о решении, может пригодится кому.
Так как движок вордпресс в вордпрессе, то возникли сложности. Во-первых редирект удалось настроить через .htaccess, но редирект работал криво. То есть страницу перебрасывало, а ответ сервера все-равно был 200. А надо было перекинуть весь вес, поэтому данное решение не устраивало.

Оптимальным оказалось внедрение в код.

<?php
if($_SERVER['REQUEST_URI'] == '/information/') {
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://site.ru/');
exit();
}
?>

Этот вариант и перебрасывает, и ответ сервера возвращает правильный (301).

Наверное, переброска через подобный коммутатор (по аналогии с ЧПУ) является наиболее правильным решением.

Только я бы на Вашем месте все запросы переправлял на такой коммутатор, а в нем бы уже прописал правил, что и куда переправлять далее.

siv1987
На сайте с 02.04.2009
Offline
427
#5
287_08:
Возможно потому как для каждого вордпресса в корне лежит свой htaccess.

Возможно. В таком случае надо для каждого вордпресса в корне писать немного другой редирект. Собственно

RewriteRule ^$ http://site.ru/ [R=301,L]

287_08:
Редирект происходил, но сервер отдавал 200 код.

По сути редирект не может происходить с кодами, отличными от 301 или 302. Вы либо перепутали его с реврайтом, либо вы за код 200 приняли код которая отдает редиректная страница - что в принципе и должно быть.

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