Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Вопрос по .htaccess
Новая тема
Ответить
цитата
29/03/08 в 11:56
violar
Привет всем! Имеются скрипты типа поискового сервиса - инфа вытаскивается из базы Яхи. Подскажите кто-нибудь, что нужно прописать в ".htaccess", чтобы при русско-язычном поиске УРЛы в браузерной строке такого вида:
_http://site.ru/?search=%D0%90%D0%B2%D1%82%D0%BE%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&type=web
_http://site.ru/?type=web&search=%D0%90%D0%B2%D1%82%D0%BE%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&pos=2
_http://site.ru/?type=web&search=%D0%90%D0%B2%D1%82%D0%BE%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&pos=3
_http://site.ru/?type=web&search=%D0%90%D0%B2%D1%82%D0%BE%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&pos=4
_http://site.ru/?type=web&search=%D0%90%D0%B2%D1%82%D0%BE%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&pos=5
отображались примерно так:
_http://site.ru/?search=xe0xe2xf2xeexedxeexe2xeexf1xf2xe8&type=web
_http://site.ru/?type=web&search=xe0xe2xf2xeexedxeexe2xeexf1xf2xe8&pos=2
_http://site.ru/?type=web&search=xe0xe2xf2xeexedxeexe2xeexf1xf2xe8&pos=3
_http://site.ru/?type=web&search=xe0xe2xf2xeexedxeexe2xeexf1xf2xe8&pos=4
_http://site.ru/?type=web&search=xe0xe2xf2xeexedxeexe2xeexf1xf2xe8&pos=5
Или как-то по другому транслитировались в латиницу.
Заранее спасибо.
цитата
29/03/08 в 12:47
_s_[sov]
не знаю как в htacces а вот в php есть функция
Код:
urldecode();
цитата
29/03/08 в 13:03
violar
_s_[sov] писал:
не знаю как в htacces а вот в php есть функция
Код:
urldecode();
Функция в РНР такая может быть и есть, да вот я, к сожалению огромному, не программист.
А вот в htacces точно как-то можно, и и это для меня конечно же было бы много проще.
цитата
29/03/08 в 13:07
_s_[sov]
violar писал:
Функция в РНР такая может быть и есть, да вот я, к сожалению огромному, не программист.
А вот в htacces точно как-то можно, и и это для меня конечно же было бы много проще.
Код:
<?
echo urldecode("http://site.ru/?search=%D0%90%D0%B2%D1%82%D0%BE%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&type=web
");
?>
цитата
29/03/08 в 14:00
violar
_s_[sov] писал:
Код:
<?
echo urldecode("http://site.ru/?search=%D0%90%D0%B2%D1%82%D0%BE%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&type=web
");
?>
Это шутка или как? Я же сообщал выше, что это типа поискового сервиса. Следовательно, после каждого поискового запроса в адресной строке броузера будет возникать соответствующий ему УРЛ. И что Вы предлагаете? На каждый такой
возможный
УРЛ писать код его персонального декодирования? И как предвидеть, что именно будут искать и, соответственно, какие УРЛы декодировать? И главное - сколько их будет?
Через htaccess это как-то можно сделать практически одной строчкой через Rewrite. Ниже привожу подобное, но для других скриптов:
RewriteEngine On
RewriteRule search_(.*)_page_(.*)\.html index.php?s=y&search=$1&complete=1&page=$2&sa=N [L]
цитата
29/03/08 в 17:40
Corex
Цитата:
RewriteEngine On
RewriteRule search_(.*)_page_(.*)\.html index.php?s=y&search=$1&complete=1&page=$2&sa=N [L]
Это немного другой редирект, в приведённом примере запрос страницы вида search_
money
_page_
287
.html передаётся скрипту index.php с установкой переменных, где переменные
search=money
, а
page=287
получают данные из псевдо-урла. Т.е. это просто реврайт запроса, без обработки его данных.
Средствами mod_rewrite перевести запрос в латиницу не получится,
_s_[sov]:
написал в принципе верное решение - сначала нужно декодировать УРЛ, т.е. получить из "%D0%90%D0%B2%D1%82%D0%BE%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8" -> "Автоновости", а потом уже из кирилицы перевести в латиницу, средствами PHP или другого серверного языка и сделать редирект через, например Header в PHP или location в JS и т.д.
цитата
01/04/08 в 22:15
violar
Corex писал:
т.е. получить из "%D0%90%D0%B2%D1%82%D0%BE%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8" -> "Автоновости"
Ясненько. Тогда другой вопрос. А можно ли сделать скрипт, который делал бы наоборот. Т.е приобразовывал бы строки слов и фраз из списка. Например вот такой набор фраз:
ключевая фраза
поисковый запрос
поиск сайта
переделывал бы вот в такое:
search=
%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%B2%D0%B0%D1%8F+%D1%84%D1%80%D0%B0%D0%B7%D0%B0
&type=web
search=
%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D1%8B%D0%B9+%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81
&type=web
search=
%D0%BF%D0%BE%D0%B8%D1%81%D0%BA+%D1%81%D0%B0%D0%B9%D1%82%D0%B0
&type=web
цитата
02/04/08 в 06:40
Corex
Можно, на ПХП очень просто:
Код:
<?php
$keyword = "
ключевая фраза
";
$keyword = urlencode($keyword);
echo "search=$keyword&type=web";
?>
На жаваскрипт немного проблемнее:
Код:
<html>
<body>
<script language="JavaScript">
<!--
var trans = [];
for (var i = 0x410; i <= 0x44F; i++)
{
trans[i] = i - 0x350;
}
trans[0x401] = 0xA8;
trans[0x451] = 0xB8;
var escapeOrig = window.escape;
window.escape = function(str)
{
var ret = [];
for (var i = 0; i < str.length; i++)
{
var n = str.charCodeAt(i);
if (typeof trans[n] != 'undefined')
{
n = trans[n];
}
if (n <= 0xFF)
{
ret.push(n);
}
}
return escapeOrig(String.fromCharCode.apply(null, ret));
}
document.write("search=" + escape("
ключевая фраза
") + "&type=web");
//-->
</script>
</body>
</html>
цитата
02/04/08 в 10:52
violar
Corex писал:
Можно, на ПХП очень просто:
Код:
<?php
$keyword = "
ключевая фраза
";
$keyword = urlencode($keyword);
echo "search=$keyword&type=web";
?>
Почему-то как-то не так кодирует. Для примера попробовал с фразой "ищем сайты". Ваш скрипт выполнил таким образом:
search=%E8%F9%E5%EC+%F1%E0%E9%F2%FB&type=web
А вот мой поисковик в адресной строке выдает другое:
search=%D0%B8%D1%89%D0%B5%D0%BC+%D1%81%D0%B0%D0%B9%D1%82%D1%8B&type=web
И еще... Мне нужно, чтобы кодировал не по одной фразе, а сразу все из списка (по одной в строке). Например из txt-файла. Выше я привел пример из трех фраз, как это должно быть.
цитата
02/04/08 в 13:12
_s_[sov]
а что циклы отменили?
пихаешь в файл урлы и кодируешь все скриптом, если не можешь сам то стукнись в асю - помогу чем смогу.
цитата
02/04/08 в 14:44
violar
_s_[sov] писал:
а что циклы отменили?
Я к сожалению не программист, поэтому и открыл этот топик.
_s_[sov] писал:
пихаешь в файл урлы и кодируешь все скриптом
1. Мне нужно кодировать не урлы, а поисковые запросы. А уж после этого на их кодированной основе я сам сделаю УРЛы и html-ссылки.
2. Я сообщил, что предложенный скрипт кодирует не так, как это выводится в моем поисковике. А мне нужно, чтобы кодировка выполнялась именно так, как это делает поисковик. Ниже видно, в чем разница.
Цитата:
Тестовую фразу "ищем сайты" предложенный выше скрипт выполнил таким образом:
search=%E8%F9%E5%EC+%F1%E0%E9%F2%FB&type=web
А вот мой поисковик в адресной строке выдает другое:
search=%D0%B8%D1%89%D0%B5%D0%BC+%D1%81%D0%B0%D0%B9%D1%82%D1%8B&type=web
Повторяюсь, мне нужно, чтобы кодировка выполнялась так, как ее делает поисковик.
Новая тема
Ответить
Эта страница в полной версии