2011-02-09 2 views
1

공유 호스팅 계정이 있고 Filezilla를 사용하여 서버에 연결하고 있습니다. public_html/items/ 폴더에서rawurlencoded UTF-8 URL에 액세스 할 수 없습니다.

, PHP rawurlencode 기능을 사용하여 인코딩 많은 하위 폴더와 그 폴더 이름을 다음과 같이있다 :

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

문제는 내가 폴더 아래에있는 파일에 액세스 할 때 404 오류가 있다는 것입니다 이름에 비 ASCII 문자 (예 : 중국어 문자)가 들어 있습니다. http://my-domain.com/items/apple/index.html

하지만하지 :

이 내가이 같은 URL을 액세스 할 수 있습니다 http://my-domain.com/items/%E6%BC%A2%E5%A0%A1%E9%A3%BD/index.html

이 가능한 문제의 어떤 종류가 될 수 있을까?

여러분 모두에게 감사드립니다.

+1

두번. 현재 문자는 디코드되고 디코드 된 결과는 –

+0

으로 검색됩니다. @ 페카 : 네가 맞다고 생각합니다. 도와 주셔서 정말로 고맙습니다. – bobo

답변

3

폴더에 물리적으로 URL 인코딩 된 이름이 포함되어있는 경우 이러한 이름이 URL에 URL 인코딩되어 있는지 확인해야합니다. 실제로 '통제되지 않은', 잠재적으로 안전하지 않은 요소에서 URL을 생성 할 때마다 해당 요소를 urlencode해야합니다. 당신이 %E8%96%AF%E6%A2%9D 당신은 예쁜 %25E8%2596%25AF%25E6%25A2%259D

와 URL에서 참조 할

, 그렇지 않은라는 이름의 디렉토리를 따라서 경우

?

이 바라 보는 또 다른 방법은 기존 urlencode되고 URL을 사용하는 경우, 서버가 실제로 시도하는 것을 해결하는 것을입니다/아이템/漢堡 飽 /index.html이 난 당신이 문자열를 urlencode해야합니다 생각

+0

예쁜! 감사. – bobo

관련 문제