Apache 无法访问的rawUrl编码的UTF-8 URL
我有一个共享主机帐户,我正在使用Filezilla连接到服务器 在Apache 无法访问的rawUrl编码的UTF-8 URL,apache,url,utf-8,urlencode,url-encoding,Apache,Url,Utf 8,Urlencode,Url Encoding,我有一个共享主机帐户,我正在使用Filezilla连接到服务器 在public\u html/items/文件夹下,有许多子文件夹,它们的文件夹名称使用PHPrawurlencode函数编码,如下所示: apple banana orange %E6%BC%A2%E5%A0%A1%E9%A3%BD %E8%96%AF%E6%A2%9D 问题是,当我访问名称包含非ASCII字符(例如,中文字符)的文件夹下的文件时,会出现404错误 这意味着我可以访问如下URL: 但不是: 这可能是什么样的问
public\u html/items/
文件夹下,有许多子文件夹,它们的文件夹名称使用PHPrawurlencode
函数编码,如下所示:
apple
banana
orange
%E6%BC%A2%E5%A0%A1%E9%A3%BD
%E8%96%AF%E6%A2%9D
问题是,当我访问名称包含非ASCII字符(例如,中文字符)的文件夹下的文件时,会出现404错误
这意味着我可以访问如下URL:
但不是:
这可能是什么样的问题
非常感谢大家。如果文件夹包含物理URL编码的名称,那么您需要确保这些名称本身在URL中是URL编码的。事实上,无论何时,只要您从任何“不受控制”、可能不安全的URL元素创建URL,您都必须对这些元素进行URL编码 因此,如果您有一个名为
%E8%96%AF%E6%A2%9D的目录
您可以使用%25E8%2596%25AF%25E6%25A2%259D
很漂亮,不是吗
另一种方式是,当您使用现有的URL编码URL时,服务器实际上试图解析的是/items/漢堡飽/html我想您必须对字符串进行两次URL编码。此时,将对字符进行解码,并搜索解码结果for@Pekka是的,我想你是对的。非常感谢你的帮助。