Нужна помощь с редиректом

12
R
На сайте с 12.12.2009
Offline
106
982

необходимо сделать редирект со странички http://megalamp.ru/category/780/ новую на страничку http://megalamp.ru/category/svetodiodnye-lampy-osvescheniya/

мм.. только сделать это не получилось..

вот мой .htaccess


# WebAsyst .htaccess config
AddDefaultCharset UTF-8
DirectoryIndex index.php
RewriteEngine On
#shop
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^shop/(repo_themes|js|3rdparty|images_common|products_pictures|images|themes|css)/(.*)$ published/SC/html/scripts/$1/$2?frontend=1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^shop/(imgval.php|wbs_messageserserver.php) published/SC/html/scripts/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(repo_themes|js|3rdparty|images_common|products_pictures|images|themes|css)/(.*)$ published/SC/html/scripts/$1/$2?frontend=1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(imgval.php|wbs_messageserserver.php|get_file.php) published/SC/html/scripts/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^shop(.*) published/SC/html/scripts/$1&frontend=1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^photos/(album|view)/(.*) photos/index.php?q=$1/$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^photos/fullsize/(.*)/(.*) photos/fullsize.php?filename=$1&hash=$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^photos/(.+)$ photos/index.php?q=$1 [L,QSA]

#common
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^login/(.*) login/index.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^installer/(.*) installer/index.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^published/$ published/index.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^published
RewriteRule (.*) published/SC/html/scripts/index.php?__furl_path=$1&frontend=1 [QSA]

пробовал подобные правила

RewriteCond %{HTTP_HOST} ^megalamp.ru/category/780/

RewriteRule (.*) http://megalamp.ru/category/svetodiodnye-lampy-osvescheniya/$1 [R=301,L]

и

Redirect 301 /megalamp.ru/category/780/ http://megalamp.ru/category/svetodiodnye-lampy-osvescheniya/

тоже не помог

не помогло.. не спец в этом деле..

Магазин аккаунтов с балансом Litres,DNS,Ozon,Rotapost и еще 50+ других сервисов тут - vk.cc/7QK0Sk
ParserYa
На сайте с 04.10.2010
Offline
29
#1
robotwerder:
RewriteCond %{HTTP_HOST} ^megalamp.ru/category/780/
RewriteRule (.*) http://megalamp.ru/category/svetodiodnye-lampy-osvescheniya/$1 [R=301,L]

и

Redirect 301 /megalamp.ru/category/780/ http://megalamp.ru/category/svetodiodnye-lampy-osvescheniya/

Еще бы...

Redirect 301 /category/780/ h_ttp://megalamp.ru/category/svetodiodnye-lampy-osvescheniya/

R
На сайте с 12.12.2009
Offline
106
#2

в принципе пашет.. тока требуемая страничка становится такого вида

http://megalamp.ru/category/svetodiodnye-lampy-osvescheniya/?__furl_path=category/780/&frontend=1

можно привести её в нормальный вид ?

http://megalamp.ru/category/svetodiodnye-lampy-osvescheniya/

ParserYa
На сайте с 04.10.2010
Offline
29
#3

Дак вы сделайте на сайте - я посмотрю... сейчас перешел - никакого редиректа

R
На сайте с 12.12.2009
Offline
106
#4

готово.. глядите пожалуйста

robotwerder добавил 20.01.2011 в 14:24

Будьте добры, помогите советом..!

ParserYa
На сайте с 04.10.2010
Offline
29
#5


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^published
RewriteRule (.*) published/SC/html/scripts/index.php?__furl_path=$1&frontend=1 [QSA]

Вот это что? Вы понимаете вообще что хотите, составляя htaccess? Может вам какой-нить попроще метод редиректа выбрать.. Например через ПХП...

На .htaccess есть смысл какие то универсальные редиректы настраивать... там же регулярные выражения.. А если вы так будете отрабатывать каждый УРЛ, дак не проще на ПХП это сделать?

R
На сайте с 12.12.2009
Offline
106
#6

Эммм.. этот файл стандартный, я его не составлял...

вообще задача такая .. необходимо настроить переходы со старых страничек на новые, поскольку произошел переход на ЧПУ с обыкновенных урлов и старые урлы вопреки предположению о том что они удалятся, остались в индексе ПС. Получились дубли страничек :(.

Вот и хотел сделать редирект со старых на ЧПУ, а позже запретить к индексации старые урлы в роботсе.

Может быть нужно было изначально описать суть проблемы. Спасибо что помогаете мне.

Только страничек очень много дублированных. Как лучше поступить в таком случае?!

ParserYa
На сайте с 04.10.2010
Offline
29
#7


$urls = array('/category/780/'=>'category/svetodio...-osvescheniya/');

foreach ($urls as $oldUrl=>$newUrl) {
if ($oldUrl == $_SERVER['REQUEST_URI']) {
header("Status: 301 Moved Permanently", false, 301);
header("Location: $newUrl");
exit;
}
}

Задумка такая, что массив $urls можно пополнять и будет срабатывать редирект.

А вообще задумайтесь нужно ли вам столько работы? Неужели на все эти страницы есть бэки и вы боитесь их потерять? Может быть проще сделать, например так:


$newUrl = explode('/',trim($_SERVER['REQUEST_URI'],'/'));
if (($newUrl[0] == 'category') && (preg_replace('#\d+#','',$newUrl[1]) == '')) {
header("HTTP/1.1 404 Not Found");
exit;
}

Тут задумка в том, что если страница находится в директории category и урл состоит только из цифр, отдавать 404. Тогда ПС сами выкинут эти страницы из индекса.

Можно оба способа совместить, с части страниц сделать редирект, а с остальных слать 404. Но если вы сами не знаете как это сделать, рекомендую Вам найти исполнителя в соответствующем разделе.

P.S. Скрипты написан на коленке и не тестировались. Наверняка требуют доработки. :)

R
На сайте с 12.12.2009
Offline
106
#8

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

Фиг бы с ними, но наличие дублированного контента так же смущает, думаю смущает оно и ПС :)

ParserYa
На сайте с 04.10.2010
Offline
29
#9

В предложенном мною втором варианте закомментируйте exit; Будет открываться старая страница, но при этом будет слаться код ошибки 404. В итоге пользователи, перешедшие на эту страницу увидят то, что искали, а ПС постепенно выкинут такие страницы из индекса.

R
На сайте с 12.12.2009
Offline
106
#10

А теперь самый глупейший вопрос с моей стороны!

Этот кусок кода

$newUrl = explode('/',trim($_SERVER['REQUEST_URI'],'/'));

if (($newUrl[0] == 'category') && (preg_replace('#\d+#','',$newUrl[1]) == '')) {
header("HTTP/1.1 404 Not Found");

}

вставить в index.php шаблона ?!

просто, пардон, не силен в программировании

12

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