.htaccess Редирект страницы вида /index.php?page=....

B
На сайте с 17.06.2014
Offline
0
1667

Всем привет.

Есть страница на сайте:

Пробую сделать редирект 301 на

пробовал так но никак не реагирует:

Redirect 301 /index.php?page=shop.browse&category_id=35&option=com_virtuemart&Itemid=2 https://silk-garden.com/category/nabory-dlya-vyshivaniya-lentami/

С ЧПУ ссылками проблем нет. Редирект работает. А подобные не хавает.

Какие можно еще использовать варианты с такими ссылками?

siv1987
На сайте с 02.04.2009
Offline
427
#1
Barmley:
пробовал так но никак не реагирует:

/ru/forum/comment/11651269

добавить после RewriteEngine On

RewriteCond %{QUERY_STRING} =page=shop.browse&category_id=35&option=com_virtuemart&Itemid=2

RewriteRule ^index\.php /category/nabory-dlya-vyshivaniya-lentami/? [R=301,L]

B
На сайте с 17.06.2014
Offline
0
#2

siv1987, Спасибо. Не сразу увидел что вы ответили.

Еще такой вариант у меня подходит (может кому то подойдет):

RewriteCond %{QUERY_STRING} category_id=(35) [NC]
RewriteRule .* https://siteB.com/katalog? [R=301,L]

Может грубовато но все работает и таким образом передал 25 страниц (в том числе вместе с дублями).

Подскажите еще пожалуйста по другому вопросу, не могу понять почему не работает.

Пробую сделать так чтобы для определенного IP был редирект только на одну определенную страницу.

Делаю так:

RewriteCond %{REMOTE_ADDR} (1.1.1.1)
RewriteRule .* /url.html [R=301,L]

Но как эту строку не вставляю возникает циклическая ошибка. Куда добавить этот код или он не правильный? И нужно ли написать RewriteEngine On сверху или вставлять код там где RewriteEngine On уже прописан?

Вот мой .htaccess

<FilesMatch "\.md5$">
Deny from all
</FilesMatch>

DirectoryIndex index.php
Options -Indexes
# Comment the following line, if option Multiviews not allowed here
Options -MultiViews

AddDefaultCharset utf-8

<ifModule mod_rewrite.c>
RewriteEngine On
# Uncomment the following line, if you are having trouble
#RewriteBase /

RewriteCond %{REQUEST_URI} !\.(js|css|jpg|jpeg|gif|png)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]
</ifModule>

<ifModule mod_headers.c>
<FilesMatch "\.(jpg|jpeg|png|gif|js|css)$">
Header set Cache-Control "max-age=3153600, public"
</FilesMatch>
</ifModule>
siv1987
На сайте с 02.04.2009
Offline
427
#3
Barmley:
Может грубовато но все работает и таким образом передал 25 страниц

Работает, но такое выражение может захватить лишнего. Вам это может быть и не грозит, если нет более 350 категорий...

Barmley:
Пробую сделать так чтобы для определенного IP был редирект только на одну определенную страницу.

RewriteCond %{REMOTE_ADDR} =1.1.1.1

RewriteRule !^url.html /url.html [R=301,L]

B
На сайте с 17.06.2014
Offline
0
#4
siv1987:
RewriteCond %{REMOTE_ADDR} =1.1.1.1
RewriteRule !^url.html /url.html [R=301,L]

1. А как сделать для всех страниц сайта. Так? RewriteRule .* /url.html [R=301,L]

2. Нужно ли написать RewriteEngine On сверху или вставлять код там где RewriteEngine On уже прописан?

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

1. Чтобы сделать так, нужно сделать так как написано выше. Это для всех страниц сайта, кроме определенной куда нужно редиректить пользователя. Иначе будет зацикливание редиректа - он будет срабатывать для всех урл включая и тот, куда происходит редирект, а этот адрес нужно исключить.

2. То же условие, что и для предыдущего редиректа - добавить после RewriteEngine On

B
На сайте с 17.06.2014
Offline
0
#6

siv1987, Теперь все ясно. Работает. Огромное спасибо!

Brit
На сайте с 24.10.2007
Offline
98
#7

Коллеги, не создаю новую, тему проблема похожа. Нужно тоже самое, только наоборот.

Редирект со страницы

http://moysite.ru/razdel1/clubs/ на http://moysite.ru/razdel2/?CATEGORY=kluby

то есть со страницы без параметров, на страницу с параметрами.

Продаю бубны и шаманские тотемы! Учу танцам с бубном! Очень удобный банк для ИП с бесплатной бухгалтерией, по рефссылке +1 месяц бесплатного обслуживания вам и мне. (tinkoff.ru/business/?invite_code=420544262742)
siv1987
На сайте с 02.04.2009
Offline
427
#8

добавить после RewriteEngine On

RewriteRule ^razdel1/clubs/$ /razdel2/?CATEGORY=kluby [R=301,L]

Brit
На сайте с 24.10.2007
Offline
98
#9
siv1987:
добавить после RewriteEngine On
RewriteRule ^razdel1/clubs/$ /razdel2/?CATEGORY=kluby [R=301,L]

К сожалению не работает. А RewriteCond там никакой не надо добавлять?

---------- Добавлено 01.07.2014 в 11:02 ----------

Оказывается сработал елементарный 301 редирект

Redirect 301 /razdel1/clubs/ http://site.ru/razdel2/?CATEGORY=kluby

Но только если поставить его до общего редиректа

Redirect 301 /razdel1/ http://site.ru/razdel2/

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

После rewriteEngine должен был сработать

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