Как в RewriteRule указать строго один символ, независимо от его длины в байтах?

php регулярные выражения regexp utf-8 modrewrite

Проблема в том что
RewriteRule ^.$

срабатывает только для английских символов в адресе, тогда как для русских срабатывает только правило ^..$, я так понимаю потому что в utf8 кириллица занимает более 1 байта

как же создать правило, которое бы преобразовывало как адреса вида `/z` так и `/я` ?

Примечание:
но не /zz или /яя

Примечание:
^.$ [B] не срабатывает

Примечание:
теоретически вроде как действительно 6,
но не знаю как там устроен RewriteRule что фактически URL-ы вида /n пропускаются ТОЛЬКО шаблоном ^.$, а УРЛы вида /щ ТОЛЬКО ^..$, поэтому ваш шаблон не помог, впрочем неплохая идея с OR

пробую шаблон ([a-z0-9]|..)
Ответы:
^.$     [B]
В UTF-8 в urlencoded-виде кириллица будет занимать 6 байт, так как кодируется строкой вида %xx%xx
Поэтому нужно что-то типа
^([a-z0-9]|%[a-fA-F0-9]{2}%[a-fA-F0-9]{2})$


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.