Нужна помощь в htaccess

[Удален]
499

Есть сайт.

Функция поиска работает по этому адресу:

сайт.ру/?lion=Текст1

Я хочу, чтобы еще она работала по этому:

сайт.ру/?string=Текст1

Как это сделать через htaccess?

Если нельзя, то можно как-то сделать, чтобы старые запросы с сайт.ру/?string=Текст1 переадресовывались на сайт.ру/?lion=Текст1

ukrdev
На сайте с 15.11.2011
Offline
31
#1

Средствами htaccess нельзя сделать невидимую подмену параметров в строке, только в скрипте обрабатывать оба параметра string и lion.

А а редирект со старого запроса на новый, вот пожалуйста

RewriteCond %{QUERY_STRING} ^string=(.*)

RewriteRule ^/?$ http://site.ru/?lion=%1 [R=301]
[Удален]
#2

Спасибо большое за помощь, сделал редирект. Теперь стало супер!) Только вот в чем косяк небольшой: если после string= идет русский текст, то редирект идет с ошибкой, выводятся абракадабры. Это можно как-нибудь исправить?

D
На сайте с 13.03.2012
Offline
0
#3

Правильней будет вот так:

RewriteCond %{REQUEST_URI} ^/\?.*string=.*

RewriteRule string=(.*) lion=$1 [L]

В этом случае не будет происходить редиректа и поиск будет работать прямо с ?string=

[Удален]
#4
Demiangel:
Правильней будет вот так:

RewriteCond %{REQUEST_URI} ^/\?.*string=.*
RewriteRule string=(.*) lion=$1 [L]

В этом случае не будет происходить редиректа и поиск будет работать прямо с ?string=

Не работает так.

ukrdev
На сайте с 15.11.2011
Offline
31
#5
iamvip:
Спасибо большое за помощь, сделал редирект. Теперь стало супер!) Только вот в чем косяк небольшой: если после string= идет русский текст, то редирект идет с ошибкой, выводятся абракадабры. Это можно как-нибудь исправить?

Кириллица и utf-8 больная тема для .htaccess :)

Как вариант можно добавит скрипт с редиректом, тогда будет работать utf-8

.htaccess


RewriteCond %{QUERY_STRING} ^string=(.*)
RewriteRule ^/?$ http://site.ru/utf8_uri.php?lion=%1 [R=301]

создать файл в корне сайта с названием utf8_uri.php и кинуть туда вот этот код


<?php
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://site.ru/?lion='.urldecode($_GET['lion']));
exit();
?>
siv1987
На сайте с 02.04.2009
Offline
427
#6
iamvip:
Функция поиска работает по этому адресу:
сайт.ру/?lion=Текст1

Я хочу, чтобы еще она работала по этому:
сайт.ру/?string=Текст1

RewriteEngine On

RewriteCond %{QUERY_STRING} ^string=(.+)$

RewriteRule ^$ /?lion=%1 [L,QSA]

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