301 Редирект

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 7 сентября 2011 в 15:10
Добрый день

Есть путb такого плана:
site.ru/category1/subcategory1/file1.html
site.ru/category1/subcategory1/file2.html
site.ru/category1/subcategory2/file3.html
site.ru/category1/subcategory3/file4.html
site.ru/category1/

нужно

site.ru/subcategory1/file1.html
site.ru/subcategory1/file2.html
site.ru/subcategory2/file3.html
site.ru/subcategory3/file4.html
site.ru/

т.е. нужно убрать лишнюю вложенность статей. В админке сделаю, а вот как сделать для поисковиков правильный редирект??? Запутался уже. Как правильно прописать файл custom_rewrite.php (запутался с метасимволами)??

function custom_rewrite_rules(){
$rules[] = array(
'source' => ЧТО СЮДА ПИСАТЬ???
'target' => ЧТО СЮДА ПИСАТЬ???
'action' => 'redirect-301'
);

return $rules;

Заранее спасибо!!!
#2 7 сентября 2011 в 15:17
Это не редирект. Если ты хочешь изменить пути, можешь сделать так в файле .htaccess
RewriteRule ^/?subcategory1/file1.html?$ /category1/subcategory1/file1.html [L]

т.е если откроешь страницу site.ru/subcategory1/file1.html откроется страница site.ru/category1/subcategory1/file1.html но в адресной строке будет site.ru/subcategory1/file1.html, один из многих вариантов.
#3 7 сентября 2011 в 15:22
Можешь еще включить в htaccess
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.* — [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
для общего ревайта.

пример RewriteRule ^/?subcategory1/$?$ /category1/subcategory1/$ [L]
#4 7 сентября 2011 в 15:27
а еще лучше так

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*/)?subcategory1/([^/]*)$ /category1/subcategory1/$1 [L]
RewriteRule ^(.*/)?subcategory2/([^/]*)$ /category1/subcategory1/$1 [L]
RewriteRule ^(.*/)?subcategory([0-9]+)/([^/]*)$.html /category1/subcategory$1/$2.html [L]

Вариантов много.
#5 7 сентября 2011 в 15:36
GoodBoy,
т.е если откроешь страницу site.ru/subcategory1/file1.html откроется страница site.ru/category1/subcategory1/file1.html но в адресной строке будет site.ru/subcategory1/file1.html, один из многих вариантов.

Я физически перенесу статьи из category1/subcategory1/ в subcategory1/
т.е. физически в админке есть сейчас категория "для детей", в ней подкатегория "кроссворды", в которой статьи. Я хочу сделать, чтобы подкатегория "кроссворды" стала категорией. Категории "для детей" не будет вообще.
Но в поисковиках уже все с ней. Поэтому и хочу сделать редирект со старого адреса с категорией "для детей" на новый адрес без этой категории.
#6 7 сентября 2011 в 15:43

Я физически перенесу статьи из category1/subcategory1/ в subcategory1/
т.е. физически в админке есть сейчас категория "для детей", в ней подкатегория "кроссворды", в которой статьи. Я хочу сделать, чтобы подкатегория "кроссворды" стала категорией. Категории "для детей" не будет вообще.
Но в поисковиках уже все с ней. Поэтому и хочу сделать редирект со старого адреса с категорией "для детей" на новый адрес без этой категории.

densvi
В таком случаи нужен редирект 301, посоветую тоже через файл htaccess, пример Redirect 301 /category1/subcategory1/file1.html www.твой сайт.ру/subcategory1/file1.html
аналогично для всех страниц.
#7 7 сентября 2011 в 16:01


Я физически перенесу статьи из category1/subcategory1/ в subcategory1/
т.е. физически в админке есть сейчас категория "для детей", в ней подкатегория "кроссворды", в которой статьи. Я хочу сделать, чтобы подкатегория "кроссворды" стала категорией. Категории "для детей" не будет вообще.
Но в поисковиках уже все с ней. Поэтому и хочу сделать редирект со старого адреса с категорией "для детей" на новый адрес без этой категории.

densvi
В таком случаи нужен редирект 301, посоветую тоже через файл htaccess, пример Redirect 301 /category1/subcategory1/file1.html www.твой сайт.ру/subcategory1/file1.html
аналогично для всех страниц.

GoodBoy

Это я понял, что либо через htaccess, либо через файл custom_rewrite.php. Вроде советуют тут на форуме через php делать. Не знаю правда, что лучше с точки зрение поисковой системы (или одинаково)?

Вот с php и запутался.
#8 7 сентября 2011 в 16:04
Для поисковиков без разницы, лиш бы они поняли что это 301
#9 7 сентября 2011 в 19:14
Помогите, плиз, разобраться с этими метасимволами!!!
Ткните хотя бы носом в пример именно по удалению части строки
#10 8 сентября 2011 в 10:18
Решил сделать в htaccess
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.