Помогите сделать редирект...

Unlock
На сайте с 01.08.2004
Offline
786
560

Раньше на сайте были страницы вида: script.php?mode=searchn&searcht=Keyword1%20Keyword2&page=1 Сейчас они выглядят так:

script.php?mode=searchn&searcht=Keyword1+Keyword2&page=1

Подскажите пожалуйста как сделать 301 редирект с урлов первого вида, на соотвествующую страницу второго вида? Желательно не в самом скрипте (PHP к сожалению не мой конек), а допустим с помощью .htaccess

Если мутно написал что надо, поясняю. Допустим если человек переходит на страницу script.php?mode=searchn&searcht=Keyword1%20Keyword2&page=1 то его должно перекидывать (301 редирект) на страницу script.php?mode=searchn&searcht=Keyword1+Keyword2&page=1

Если заход был на страницу script.php?mode=searchn&searcht=Keyword1%20Keyword2&page=50 то на страницу script.php?mode=searchn&searcht=Keyword1+Keyword2&page=50

Заранее спасибо за помощь.

Есть желание, - тысяча способов; нет желания, - тысяча поводов! /Петр-I/.
Zlo_606ep
На сайте с 14.12.2006
Offline
129
#1

Очень просто, попробуйте так, хотя что-то меня смутили %20 может кто поправит

RewriteRule script.php?mode=searchn&searcht=([^%]+)%20([^&]+)&page=(.*)$ script.php?mode=searchn&searcht=$1+$2&page=$3 [R=301,L]

Unlock
На сайте с 01.08.2004
Offline
786
#2

%20 заменяет пробел, хотя Вы наверное и так поняли ;)

P.S. Проверил, не работает так :(

Zlo_606ep
На сайте с 14.12.2006
Offline
129
#3

Покопался подумал, может строка запроса - не есть путь в htaccess (пусть меня научат), предлагаю банально вписать в начале вашего файла (script.php) код

if(stristr($REQUEST_URI,'%20')

{

$url=str_replace('%20','+',$REQUEST_URI);

header("HTTP/1.1 301 Moved Permanently");

header('Location: '.$url);

exit();

}

Zlo_606ep
На сайте с 14.12.2006
Offline
129
#4

Тут читал так и не получилось http://www.info.data-com.ru/?t=1

Unlock
На сайте с 01.08.2004
Offline
786
#5
Zlo_606ep:
Покопался подумал, может строка запроса - не есть путь в htaccess (пусть меня научат), предлагаю банально вписать в начале вашего файла (script.php) код
if(stristr($REQUEST_URI,'%20')
{
$url=str_replace('%20','+',$REQUEST_URI);
header("HTTP/1.1 301 Moved Permanently");
header('Location: '.$url);
exit();
}

Что-то и так не получается... Блин, ведь должно все просто делаться ;) Вопрос как... В любом случае спасибо за помощь!

Zlo_606ep
На сайте с 14.12.2006
Offline
129
#6

Да дожно в php работать (может объявить ранее global $REQUEST_URI), $REQUEST_URI - обычная текстовая переменная, тут просто должно работать.

p.s. можно сайт в личку, посмотрю, что не так.

Unlock
На сайте с 01.08.2004
Offline
786
#7

Zlo_606ep, попробую чуть позже скрипт помучать, где-то я не правильно что-то делал. А сайт смотреть смысла нет, это уж тогда надо скрипт смотреть ;)

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