Триста первый редирект

Y
На сайте с 09.01.2010
Offline
5
ykm
1020

Добрый день!

Помогите, пожалуйста, сделать 301 редирект со страницы http://site.ru/index.php?do=form&id=1 на http://site.ru/form/ . Уже измучился, конкретно с такой страницы редирект у меня не работает, не могу понять почему.

mts
На сайте с 10.06.2006
Offline
108
mts
#1

RewriteRule ^/index.php?do=form&id=1$ /form/ [R=301]

Разработка и поддержка сайтов (http://webmaster24.ru/)
Y
На сайте с 09.01.2010
Offline
5
ykm
#2

спасибо, но не работает

PyMbIH
На сайте с 22.11.2009
Offline
76
#3

ykm, а средствами CMS это нельзя осуществить? ;)

Y
На сайте с 09.01.2010
Offline
5
ykm
#4

только средствами .httaccess :)

RO
На сайте с 13.07.2009
Offline
88
#5
конкретно с такой страницы редирект у меня не работает

соизвольте увидеть код которым вы пытались это сделать.

DocS
На сайте с 02.07.2008
Offline
100
#6

А Вы как делали, так? -

Redirect 301 /index.php?do=form&id=1 http://site.ru/form/

По-идее должно работать.

Y
На сайте с 09.01.2010
Offline
5
ykm
#7
DocS:
А Вы как делали, так? -
Redirect 301 /index.php?do=form&id=1 http://site.ru/form/
По-идее должно работать.
RedOK:
соизвольте увидеть код которым вы пытались это сделать.

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

Redirect 301 /index.php?do=form&id=1 http://site.ru/form/

и поигрался со всеми производными, вроде абсолютных/относительных адресов.

плюч через Redirect permanent пытался.

затем стал пробывать через modrewrite. все свои варианты я конечно не записывал, но пробывал

RewriteRule /index.php?do=form&id=1 ^form(/?)+$ [L,R=301]

также, что советовали выше писал

RewriteRule ^/index.php?do=form&id=1$ /form/ [R=301]

безрезультатно

ykm добавил 01.06.2010 в 20:01

не работает, я так понимаю, из-за этой вот части ?do=form&id=1 с параметрами.

какие есть идеи?

RO
На сайте с 13.07.2009
Offline
88
#8

попробуйте средствами пэхэпэ,


if($_GET['do']=='form' and $_GET['id']==1)
{
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://site.ru/form/');
}

это вставьте в index.php где то вначале страницы.

Y
На сайте с 09.01.2010
Offline
5
ykm
#9
RedOK:
попробуйте средствами пэхэпэ,

if($_GET['do']=='form' and $_GET['id']==1)
{
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://site.ru/form/');
}

это вставьте в index.php где то вначале страницы.

огромное спасибо! работает:)

но теперь, всё равно, остаётся интерес, как это сделать с помощью .httaccess :)

alexandr_nv
На сайте с 23.04.2009
Offline
39
#10
ykm:
но теперь, всё равно, остаётся интерес, как это сделать с помощью .httaccess :)

Вот:


RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} do=form&id=1
RewriteRule ^index.php$ temp/? [R=301]

знак ? после temp/ - чтобы не передавались get-параметры. Если они нужны - то удали этот знак.

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