ЧПУ с правильным ридеректом

CA
На сайте с 18.08.2012
Offline
29
760

Есть страница

http://www.winecase.ru/index.php?productID=67

пишу правило

RewriteRule ^chamber_for_wine/(.*)$ index.php?productID=$1 [L]

Получилось http://www.winecase.ru/chamber_for_wine/67

Но вот яндекс и другие источники будут ссылаться по старой ссылке

Как настроить правильный редирект 301

Прописал выше предыдущего правила

Redirect 301 /index.php?productID=67 http://www.winecase.ru/chamber_for_wine/67

Ноль реакции.

Так же пробовал использовать второе правило с сайта http://seva-oshnikov.ru/chpu-htaccess/

RewriteCond %{QUERY_STRING} ^productID=67$

RewriteRule ^index.php$ http://www.winecase.ru/chamber_for_wine? [R=301,L]

RewriteRule ^chamber_for_wine/$ http://www.winecase.ru/chamber_for_wine? [R=301,L]

#RewriteRule ^chamber_for_wine productID=67

RewriteRule ^chamber_for_wine productID=67&xxx=1

Но при запросе

http://www.winecase.ru/index.php?productID=67

переходит на http://www.winecase.ru/chamber_for_wine

Подскажите, где я ошибся?

G0
На сайте с 10.08.2013
Offline
12
#1
ctrl-andrey:

Но вот яндекс и другие источники будут ссылаться по старой ссылке
Как настроить правильный редирект 301

RewriteRule ^index.php?productID=(.*)$ chamber_for_wine/$1 [R=301]

CA
На сайте с 18.08.2012
Offline
29
#2

Спасибо Gug007

А после того как яндекс проиндексирует новые урл

нужно убирать редирект [R=301] заменить [L] ?

G0
На сайте с 10.08.2013
Offline
12
#3
ctrl-andrey:
Спасибо Gug007
А после того как яндекс проиндексирует новые урл
нужно убирать редирект [R=301] заменить [L] ?

Нет. [R=301] - говорит о том, что страница была перемещена на новый адрес.

CA
На сайте с 18.08.2012
Offline
29
#4

где то есть ошибка

вот мой файл

RewriteEngine On

Options +FollowSymLinks

RewriteCond %{HTTP_HOST} ^winecase.ru(.*)

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

ErrorDocument 404 /404.php

RewriteRule ^index.php?productID=(.*)$ chamber_for_wine/$1 [R=301]

но при запросе http://www.winecase.ru/index.php?productID=67

всё по прежнему, не идёт редирект

а http://www.winecase.ru/chamber_for_wine/67

выдаёт белеберду

Ещё прошу прощения

в начале я не правильно задал вопрос

я хочу, чтобы редирект был вида

index.php?productID=67 --- chamber_for_wine/уникальноимя1

index.php?productID=11 --- chamber_for_wine/уникальноимя2

G0
На сайте с 10.08.2013
Offline
12
#5
ctrl-andrey:
где то есть ошибка
но при запросе http://www.winecase.ru/index.php?productID=67
всё по прежнему, не идёт редирект

RewriteEngine On

RewriteRule ^index.php?productID=(.*)$ chamber_for_wine/$1 [R=301]
RewriteRule ^chamber_for_wine/(.*)$ index.php?productID=$1 [L]

а http://www.winecase.ru/chamber_for_wine/67
выдаёт белеберду

В коде сайта укажите не относительные пути а путь от корневой директории

Например вместо href='style.css' укажите href='/style.css'



Ещё прошу прощения
в начале я не правильно задал вопрос
я хочу, чтобы редирект был вида
index.php?productID=67 --- chamber_for_wine/уникальноимя1
index.php?productID=11 --- chamber_for_wine/уникальноимя2

может так: index.php?productID=67 > chamber_for_wine/67

CA
На сайте с 18.08.2012
Offline
29
#6

Gug007 вам ещё раз огромное спасибо за ответы

Я хочу сам дойти до истины, но увы 🙅 не получается

Поэтому опять прошу вашего совета

В реале я хочу привести к виду

winecase.ru/chamber_for_wine/climadiff_dopiovino

winecase.ru/chamber_for_wine/climadiff_av12dzx

сейчас запросы вида index.php?productID=67

хочу в БД добавить столбец url который будет содержать уникальное имя товара, категории

в любом случаи редирект 301 мне придётся прописывать для всех товаров

RewriteEngine On

RewriteRule ^index.php?productID=(.*)$ chamber_for_wine/$1 [R=301]
RewriteRule ^chamber_for_wine/(.*)$ index.php?productID=$1 [L]

к сожаленью не делает редирект с запроса

http://www.winecase.ru/index.php?productID=67

на

http://www.winecase.ru/chamber_for_wine/67

G0
На сайте с 10.08.2013
Offline
12
#7
ctrl-andrey:

В реале я хочу привести к виду
winecase.ru/chamber_for_wine/climadiff_dopiovino
winecase.ru/chamber_for_wine/climadiff_av12dzx

сейчас запросы вида index.php?productID=67
хочу в БД добавить столбец url который будет содержать уникальное имя товара, категории
в любом случаи редирект 301 мне придётся прописывать для всех товаров

В этом случае 301 редирект веб сервер не сможет сделать

Нужно делать редирект в коде, то есть получили запрос:

index.php?productID=67 посмотрели в бд уникальное имя для id 67 и сделали редирект на /chamber_for_wine/name_product

CA
На сайте с 18.08.2012
Offline
29
#8

Да на php это можно автоматизировать

Конечно хотелось разместить всё файле .htaccess

Планировалось переписать все уникальные имена и прописать в .htaccess в ручную

Если написать на php, как к этому относятся yandex и google?

CA
На сайте с 18.08.2012
Offline
29
#9

на php всё получилось

но моя пытливая голова не даёт покоя

почитал статейку

и сделал соответствующие записи

RewriteCond %{QUERY_STRING} =productID=67

RewriteRule . /chamber_for_wine/67.htm? [R=301,L]
RewriteRule ^chamber_for_wine/(.*).htm$ index.php?productID=$1 [L]

в отдельности (1, 2) и 3 строчки работают правильно

а вот вместе, получается бесконечный редирект.

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