как правильно сделать редирект?

12
T
На сайте с 17.06.2012
Offline
90
903

настроил редирект по принципу:

Redirect 301 /catalog/product1 http://mysite.ru/product1

работает, но проблема в том, что адрес в браузере стал выглядеть так после редиректа:

http://mysite.ru/product1?_route_=catalog/product1

а мне надо, чтобы хвоста (?_route_=catalog/product1) не было, т.к. в таком случае неправильно работают комментарии через соцсети.

как правильно сделать?

заранее спасибо!

StAlKeR-xXl
На сайте с 01.07.2011
Offline
45
#1

RewriteRule ^staraya_rubrika/stranica/ /novaya_rubrika/stranica/ [R=301,L]

---------- Добавлено 23.04.2013 в 20:36 ----------

Вставлять после RewriteEngine On

не держите все [S]яйца[/S] сайты в одной [S]корзине[/S] поисковой системе....(c)
T
На сайте с 17.06.2012
Offline
90
#2
StAlKeR-xXl:
RewriteRule ^staraya_rubrika/stranica/ /novaya_rubrika/stranica/ [R=301,L]

---------- Добавлено 23.04.2013 в 20:36 ----------

Вставлять после RewriteEngine On

спасибо, но что-то не работает...

вот весь htaccess

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.mysite\.ru$ [NC]

RewriteRule ^(.*)$ http://mysite.ru/$1 [R=301,L]

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule (.*) index.php?_route_=$1 [L,QSA]

RewriteRule ^catalog/tovar1/ /tovar1/ [R=301,L]

StAlKeR-xXl
На сайте с 01.07.2011
Offline
45
#3

а какой движок у сайта?

*странно.. у меня на DLE работает отлично.. при редиректе категорий

AI
На сайте с 02.04.2013
Offline
3
#4
trendy:
спасибо, но что-то не работает...

вот весь htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.mysite\.ru$ [NC]
RewriteRule ^(.*)$ http://mysite.ru/$1 [R=301,L]


RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?_route_=$1 [L,QSA]

RewriteRule ^catalog/tovar1/ /tovar1/ [R=301,L]

Попробуйте так:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.mysite\.ru$ [NC]

RewriteRule ^(.*)$ http://mysite.ru/$1 [R=301,L]

RewriteBase /

RewriteRule ^catalog/tovar1/ /tovar1/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule (.*) index.php?_route_=$1 [L,QSA]

---------- Добавлено 23.04.2013 в 21:02 ----------

Правило

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?_route_=$1 [L,QSA]

должно выполняться самым последним, т.к. после него не одно правило уже не сработает. (за исключением обращения к файлам)

T
На сайте с 17.06.2012
Offline
90
#5

супер, работает! спасибо!

AI
На сайте с 02.04.2013
Offline
3
#6

trendy, всегда пожалуйста :)

T
На сайте с 17.06.2012
Offline
90
#7

еще вопрос возник. на том же сайте увидел, что одна и та же главная страница доступна по двум адресам:

1. http://mysite.ru/

2. http://mysite.ru/index.php?route=common/home

стоит ли сделать редирект (для ПС) и как его прописать?

AI
На сайте с 02.04.2013
Offline
3
#8
trendy:
еще вопрос возник. на том же сайте увидел, что одна и та же главная страница доступна по двум адресам:
1. http://mysite.ru/
2. http://mysite.ru/index.php?route=common/home

стоит ли сделать редирект (для ПС) и как его прописать?

Стоит. Попробуйте так:

RewriteCond %{QUERY_STRING} route=([a-z/]+) 

RewriteCond %{QUERY_STRING} !url_rewrited=1
RewriteRule index.php %1? [R=301,L,NC]
T
На сайте с 17.06.2012
Offline
90
#9

не работает, адрес превращается в http://mysite.ru/common/home

AI
На сайте с 02.04.2013
Offline
3
#10
trendy:
не работает, адрес превращается в http://mysite.ru/common/home

Недосмотрел. Написал для всех страниц что-бы небыло такого:

http://mysite.ru/index.php?route=catalog/product1

Конкретно для главной страницы:

RewriteCond %{QUERY_STRING} route=common/home

RewriteCond %{QUERY_STRING} !url_rewrited=1
RewriteRule index.php / [R=301,L,NC]
12

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