Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Регулярное выражение. Не работает а-яА-Я

Ответить
Настройки темы
Регулярное выражение. Не работает а-яА-Я

Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


похоже, у меня на хостинге не работает такое правило, как а-яА-Яa-zA-Z
Нужно сделать запись в .htaccess

Подскажите, как обратиться в хостинг с вопросом.
Какой модуль или библиотека должна стоять у них на сервере для правильного отображения кириллических букв в регулярных выражениях?

Хостинг - Линукс

вообщем вот такое выражение не фурычит:

RewriteRule ^([а-яА-Яa-zA-Z0-9\_\-]+)\/([0-9]+)\/[\+а-яА-Яa-zA-Z0-9\_\-\(\)\:\.\-]+\.htm$ index.php?production=$1&id=$2 [L]

хотя может проблема быть в какой то кодировке
Мне вот отвечает такими символами странными
The requested URL /инстÑ?укция/АбÑ?а-КадабÑ?а/10/Тест.pdf was not found on this server.

-------
Мой блог Web Development


Отправлено: 23:54, 19-10-2010

 

Deadooshka


Сообщения: 2517
Благодарности: 692

Профиль | Отправить PM | Цитировать


где лежит конфиг, и в какой кодировке сохранен?

Отправлено: 00:55, 12-11-2010 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Цитата Sham:
где лежит конфиг, и в какой кодировке сохранен? »
если .htaccess имеется ввиду, то utf-8

-------
Мой блог Web Development


Отправлено: 01:07, 12-11-2010 | #12


Deadooshka


Сообщения: 2517
Благодарности: 692

Профиль | Отправить PM | Цитировать


С передним слешем непонятно (какой путь получает правило, если с передним слешем, то добавьте \/? вначале). Сложно, не видя всего. Так вроде без ошибок.

Отправлено: 01:28, 12-11-2010 | #13


Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


В корне:

/
Код: Выделить весь код
enca -L ru .htaccess
Universal transformation format 8 bits; UTF-8
  Doubly-encoded to UTF-8 from ISO-8859-5
Если конфиги движка:

/config

Код: Выделить весь код
enca -L ru *
config.inc.php: 7bit ASCII characters
index.php: 7bit ASCII characters
settings.inc.php: 7bit ASCII characters
smarty.config.inc.php: 7bit ASCII characters
так не стало лучше:
RewriteRule ^\/?([a-zA-Zа-яА-Я0-9\%\-]+)/([0-9]+)\-(.*)\.html(.*)$ /product.php?id_product=$2$4 [L,E]

-------
Мой блог Web Development


Отправлено: 01:36, 12-11-2010 | #14


Deadooshka


Сообщения: 2517
Благодарности: 692

Профиль | Отправить PM | Цитировать


а зачем флаг E? он для переменной...

Отправлено: 01:45, 12-11-2010 | #15


Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Цитата Sham:
а зачем флаг E? он для переменной... »
по дефолту стоял, я и оставил
движок: prestashop

-------
Мой блог Web Development


Отправлено: 01:45, 12-11-2010 | #16


Deadooshka


Сообщения: 2517
Благодарности: 692

Профиль | Отправить PM | Цитировать


имхо сервер неправильно декодирует путь и правило получает уже неверную кодировку. Попробуйте вывести, что получает правило (echo $_SERVER['QUERY_STRING'] //upd: или $_GET['all'] тогда) c правилом
upd: без условия может зациклить
Код: Выделить весь код
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /product.php?all=$1 [L]
и смотрите кодировку этих символов

так имхо надежнее
Код: Выделить весь код
RewriteRule ^\/?[^\/]+/([0-9]+)\-.*\.html$ /product.php?id_product=$1 [L]

Последний раз редактировалось Sham, 12-11-2010 в 02:56. Причина: upd


Отправлено: 02:22, 12-11-2010 | #17


Deadooshka


Сообщения: 2517
Благодарности: 692

Профиль | Отправить PM | Цитировать


apache 2.2, htaccess в utf8: если в правиле напрямую кириллицу указывать, то работает, если в 16-ричном (типа \xC1) - то нет. Но при выводе пути (в браузер) кириллица все-равно преобразована неправильно.

Т.е. с кириллицей в пути URLa лучше не связываться, т.к. непонятно, как декодируются из экранированного пути. При этом get-параметры декодируются веб-сервером правильно, как ни странно.

Можно предположить, что экранированный путь декодируется в системную кодировку сервера (в кодировку файловой системы), из-за этого неувязочка.
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:34, 12-11-2010 | #18


Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Цитата Sham:
Т.е. с кириллицей в пути URLa лучше не связываться, т.к. непонятно, как декодируются из экранированного пути. При этом get-параметры декодируются веб-сервером правильно, как ни странно. »
а иногда очень нужно.
я вот, если сам какой то движок мини делаю, то с кириллицей поступаю так.
В .htaccess пишу:
Код: Выделить весь код
AddDefaultCharset UTF-8
DirectoryIndex index.php
Options +FollowSymlinks
RewriteEngine On

RewriteRule .* index.php
в index.php
PHP код: Выделить весь код

$request_url mb_convert_encoding(substr(urldecode($_SERVER['REQUEST_URI']), 1), 'utf-8''auto');
$de_link explode("/"$request_url);

if (
$request_url=="index.php" || $request_url == "" || $de_link[0] == "Главная") {
    include(
'');
} else if (
ereg("^p[0-9]*$"$de_link[0])) {
    include(
'');

} else if (
$de_link[0] == "Опрос" && count($de_link) == 2) {
   include(
'');
else {
    include(
'modules/content/main.php');


ну и т.п.
прокомментриуйте пожалуйста способ))

-------
Мой блог Web Development


Отправлено: 10:47, 12-11-2010 | #19


Deadooshka


Сообщения: 2517
Благодарности: 692

Профиль | Отправить PM | Цитировать


если
Цитата Artem-Samsung:
mb_convert_encoding »
работает как нужно (на выходе кириллица), и index.php в utf8, то пойдет.
Цитата Artem-Samsung:
include(''); »
непонятно.

в правиле можно направлять на этот скрипт только урлы, содержащие нелатиницу [^\w] или [^a-zA-Z0-9\/\-\_\.] - и в таком духе (набор символов определяется на практике).

не спамь в полезняшки
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:40, 12-11-2010 | #20



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Регулярное выражение. Не работает а-яА-Я

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Регулярное выражение venuko Вебмастеру 11 02-08-2010 18:18
Регулярное выражение: вырезать данные между тегами venuko Вебмастеру 6 04-06-2009 16:59
Регулярное выражение для проверки денежной суммы BuilderMan Вебмастеру 9 23-08-2006 11:24
регулярное выражение на пхп. Drem Вебмастеру 13 22-07-2006 00:16
Регулярное выражение benya Вебмастеру 27 26-08-2005 14:34




 
Переход