Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать так, чтобы в Rewrite Rule работали... спец. символы 
:(
    Опции темы
Borland_Delphi_6
  Дата 13.5.2005, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



САБЖ. Например код:

RewriteEngine on
Options FollowSymLinks -Indexes
RewriteRule ^([a-z]+)-?\.jpg$ $1.php [NC,L,QSA]
RewriteRule ^([0-9a-z]+)-([0-9a-z]+)-([0-9a-z_]*)-?(.*)$ $1-$4?$2=$3 [NC,QSA]

Понимает цифры 0-9 и буквы a-z. А как заставить его работать со спец. символами и русскими буквами?


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Borland_Delphi_6
Дата 15.5.2005, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Народ, неужели никто не знает? Должен же быть способ! Или я объяснил глючно? smile


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Borland_Delphi_6
Дата 16.5.2005, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Объясняю подробно, как могу...

Есть правило:
ewriteRule ^([0-9a-z]+)-([0-9a-z]+)-([0-9a-z_]*)-?(.*)$ $1-$4?$2=$3 QSA]

Его нужно превратить в:
RewriteRule ^([0-9a-z]+)-([0-9a-z]+)-([0-9a-z_ !А ТАКЖЕ СИМВОЛ "%"!]*)-?(.*)$ $1-$4?$2=$3 [NE,QSA]

Вот как это в регулярках записать? И еще: как сделать так, чтобы заглавные и строчные буквы различались? Т.е. в url можно было бы писать и то и то, но по GET они бы передавались в нужном регистре...


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Mal Hack
Дата 16.5.2005, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



\ - обычно эскейпит спецсимволы. \. - точка.
Для % возможно надо написать %%.
PM ICQ   Вверх
Borland_Delphi_6
Дата 16.5.2005, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Через слеш пробовал. А вот %% еще нет. Пойду smile


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Borland_Delphi_6
Дата 16.5.2005, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Нифига smile Неужели не получится подружить RewriteEngine со спец. символами? smile smile smile У меня уже есть корявое решение (на пхп), но хочется нормального...


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Mal Hack
Дата 16.5.2005, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



Borland_Delphi_6
а как вообще у тебя там % оказался?
По логикет с % гначинается 16 ричный код символа не на ISO-en кодировке...
PM ICQ   Вверх
Borland_Delphi_6
Дата 17.5.2005, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



URLEncode возвращает коды символов, и начинаются они с %. %20 - пробел и т.д....


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Mal Hack
Дата 17.5.2005, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



Borland_Delphi_6
я тебя не понимаю малость. % означает что дальше идет код символа. % в имени файла быть не может. так зачем ьтебе их в реврайте как-то обрабатывать, если потом в скрипте надо декодировать?
PM ICQ   Вверх
Borland_Delphi_6
Дата 17.5.2005, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Правильно, код символа. Мне нужно передать русский текст в GET'e, а потом сделать urlDEcode и вывести оригинал.


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Mal Hack
Дата 17.5.2005, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



А при чем тут реврай-то? smile
Пиши просто в паттерне - любой символ smile
PM ICQ   Вверх
Borland_Delphi_6
Дата 17.5.2005, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Так. Еще раз. Сейчас URL работает такой:
test.jpg-param-AnyEnglishLetterAndNumber

А вот test.jpg-param-Any%20English%20Letter%20And%20Number - нет! Rewrite Rule под это не настроено! Вот как изменить его для данной задачи? (оригинал выше).


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Mal Hack
Дата 17.5.2005, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



RewriteRule ^([0-9a-z]+)-([0-9a-z]+)-(.+?)-?(.*)$ $1-$4?$2=$3 [NE,QSA]
PM ICQ   Вверх
Borland_Delphi_6
Дата 18.5.2005, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Internal Server Error



--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Mal Hack
Дата 18.5.2005, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



RewriteRule ^([0-9a-z]+)-([0-9a-z]+)-(.+?)-(.*)$ $1-$4?$2=$3 [NE,QSA]
PM ICQ   Вверх
Borland_Delphi_6
Дата 19.5.2005, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Internal Server Error
Эх, спасибо конечно, но видимо придется это реализовывать средствами PHP... Вот код, если интересно.

Код

function encode($str)
{
$out = base64_encode($str);
$out = str_replace("+", "_43_", $out);
$out = str_replace("/", "_47_", $out);
return $out;
}

function decode($str)
{
$stage1 = str_replace("_43_", "+", $str);
$stage2 = str_replace("_47_", "/", $stage1);
$out = base64_decode($stage2);
return $out;
}

$string = encode("абвгдеёжзйиклмнопрстуфхцчшщъыьэюя!#$%&'()*+,-./:;<=>?@^`_{|}~ ?");
echo $string;



--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Mal Hack
Дата 19.5.2005, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



Попробуй:
RewriteRule ^([0-9a-z]+)-([0-9a-z]+)-(.+?)-(.+)$ $1-$4?$2=$3 [NE,QSA]
PM ICQ   Вверх
Borland_Delphi_6
Дата 19.5.2005, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



То же самое


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Mal Hack
Дата 19.5.2005, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



Код
Options +FollowSymlinks -MultiViews 
RewriteEngine On
RewriteRule ^([0-9a-z]+)-([0-9a-z]+)-(.+)-(.+)$ $1-$4?$2=$3 

Код рабочий. При http://scripts.localhost/rewrite/sdf1-sdf2-sdf3-sdf4 редирект был на: http://scripts.localhost/rewrite/sdf1-sdf4?sdf2=sdf3
PM ICQ   Вверх
Borland_Delphi_6
Дата 20.5.2005, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Mal Hack
Может быть, но в любом случае должно быть
http://scripts.localhost/rewrite/sdf1-sdf2...sdf3%20-sdf4%20 Хотя у меня http 500.


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Mal Hack
Дата 20.5.2005, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



Borland_Delphi_6
странно. У меня лишь 404 вылезла... Не более..
Попробуй вот так:
RewriteRule ^(.+)-(.+)-(.+)-(.+)$ $1-$4?$2=$3
PM ICQ   Вверх
Borland_Delphi_6
Дата 20.5.2005, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Будет возможность, проверю. Пока у меня другой вопрос: как заставить его различать заглавные и строчные буквы, а то в GET'е всё строчным передаётся. Надеюсь модераторы не обидятся smile


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Mal Hack
Дата 20.5.2005, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



В моем последнем рэгэ пофиг какие буквы. А вообще:
[a-zA-Z]
PM ICQ   Вверх
Borland_Delphi_6
Дата 21.5.2005, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Так если бы... Я тк
Добавлено @ 14:50
Так если бы... Я так уже пробовал. Всё равно Get'ом передаёт только строчные буквы. Флаг NC не стоит.


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Mal Hack
Дата 21.5.2005, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



Цитата(Borland_Delphi_6 @ 21.5.2005, 15:47)
Всё равно Get'ом передаёт только строчные буквы.

Значит Апаче так настроен. Вроде там былда директива отвечающая за подобгные преобразования.

Borland_Delphi_6
у меня рэг работеат. как тебе нужно. Проверял.
PM ICQ   Вверх
Borland_Delphi_6
Дата 30.5.2005, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Хм, действительно, на сервере все заработало! Mal Hack, спасибо! Вот что получилось:
http://code.pp.ru/plug-r-getinformer


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Mal Hack
Дата 30.5.2005, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



Ну вот и замечательно smile
Будут вопросы, спрашивай еще smile
http://vingrad.ru/WEB-SERVER-002835 - вот еще в качестве материальчика smile
PM ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.0727 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.