использование unicode в rewriterule

Я предполагаю, что Вы не установили этот пакет, или это была минимальная установка.
Установите это при помощи: yum install ftp.

Конфигурация сервера не имеет никакого отношения к клиенту, это два отдельных пакета.

3
задан 21 October 2017 в 03:23
2 ответа

URL-адреса "в сети" закодированы в обычном ASCII (latin1) - все символы, отличные от ASCII, кодируются клиентами (браузерами) в шестнадцатеричном формате % xx ...

Вы можете найти следующую статью полезной.

Чтобы быть более конкретным: ваш файл конфигурации Apache будет представлять собой обычный текст ASCII, а специальные символы будут закодированы в % xx шестнадцатеричная форма - вы даже можете перевести ее с помощью простого инструмента, доступного на указанной выше странице w3schools.

0
ответ дан 3 December 2019 в 07:06
 RewriteBase / новый /
 :
RewriteRule ^ استینگ / است-لینوکس-عادی / $ /linux-regular.php [L]
 

Тот факт, что вы установили конкретное значение для RewriteBase , но указали относительный корневой путь URL-адреса в подстановке RewriteRule , вызывает тревогу. Директива RewriteBase влияет только на относительные (не начинающиеся с косой черты или схемы) пути подстановки , поэтому в этом случае она будет просто проигнорирована - что я ' m, конечно, это не намерение - иначе не было бы необходимости устанавливать его в первую очередь.

Удалив префикс косой черты в подстановке RewriteRule , он будет учитывать RewriteBase и будет переписан в /new/linux-regular.php . Например:

RewriteRule ^هاستینگ/هاست-لینوکس-عادی/$ linux-regular.php [L]

Что согласуется с вашим последующим комментарием: «... и удалено / из начала linux-regular.php, и он работал.»

... специальные символы будут закодированы в% xx hex form

В сторону: Хотя запрос должен быть закодирован в% (закодирован URL), путь URL, с которым совпадает шаблон RewriteRule ,% -декодирован (URL декодирован) движок перезаписи. Таким образом, использование фактических символов (UTF-8) в шаблоне RewriteRule здесь является правильным (в отличие от другого ответа).

Если вам специально нужно сопоставить с% -кодированными URL-путь, тогда вам нужно будет использовать директиву RewriteCond и проверить серверную переменную THE_REQUEST .

2
ответ дан 3 December 2019 в 07:06

Теги

Похожие вопросы