Недоступный URL в кодировке UTF-8 в формате rawurlenco - PullRequest
1 голос
/ 09 февраля 2011

У меня есть общая учетная запись хостинга, и я использую Filezilla для подключения к серверу.

В папке public_html/items/ есть много подпапок, а имена их папок кодируются с помощью функции PHP rawurlencode,например:

apple
banana
orange
%E6%BC%A2%E5%A0%A1%E9%A3%BD
%E8%96%AF%E6%A2%9D

Проблема в том, что я получаю ошибку 404 при доступе к файлам в папках, имена которых содержат символы не ASCII (например, китайские символы).

Это означает, что яможет получить доступ к URL-адресу, как этот: http://my -domain.com / items / apple / index.html

Но не: http://my -domain.com / items /% E6% BC% A2% E5% A0% A1% E9% A3% BD / index.html

Что это может быть за проблема?

Большое спасибовы все.

1 Ответ

3 голосов
/ 09 февраля 2011

Если в папках содержатся физически urlen-кодированные имена, вам необходимо убедиться, что эти имена сами urlen-кодированы в ваших URL-адресах. Фактически, каждый раз, когда вы создаете URL из каких-либо «неконтролируемых», потенциально небезопасных элементов, вы должны urlencode этих элементов.

Таким образом, если у вас есть каталог с именем %E8%96%AF%E6%A2%9D

Вы бы ссылались на него в URL с %25E8%2596%25AF%25E6%25A2%259D

Довольно, не правда ли?

Еще один способ взглянуть на это заключается в том, что когда вы используете свой существующий URL-адрес с URL-адресами, сервер пытается решить это:

...