Web服务器文件名的Legal/Allowed字符是什么?

Cla*_*ols 12 html web

所有服务器(*nix,Windows等)上的HTML文件的文件名中允许使用哪些字符?我正在寻找适用于所有服务器的"最低标准".使用:我正在命名要公开提供的文件(Mysite.com/My-Page.htm)

空间?_ - 等

例如,我可以使用File-Name.htm,File_Name.htm文件Name.htm吗?

显然,这需要适用于所有服务器和浏览器.(IIRC,名称受服务器限制而不是浏览器,但我可能错了).

bob*_*nce 20

服务器上的HTML文件的文件名中允许哪些字符?

这完全取决于服务器.HTTP本身允许任何字符,包括控制字符和非ASCII字符,只要它们在URL中请求时适当地进行%编码.

在Unix服务器上,您不能使用'/'或零字节.(如果你可以使用它们,它们分别在URL中显示为'%2F'和'%00'.)你也不能拥有特定的文件名'.' 或'..',或空字符串.

在Windows服务器上,您具有Unix服务器的所有限制,另外您也不能使用任何\/:*?"<>|或控制字符1-31,并且您不能使用前导或尾随点或空格,并且您将无法使用任何遗留设备文件名(CON,PRN,COM1等等).

这与HTTP无关; 文件名如何在Windows上运行,这很复杂.

我可以使用File-Name.htm,File_Name.htm文件Name.htm吗?

当然.但在最后一种情况下,您应该通过URL编码空间链接到它:

<a href="File%20Name.htm">thingy</a>
Run Code Online (Sandbox Code Playgroud)

浏览器通常会让你离开这个空间,但它并不是真的有效.如果您想避免考虑URL转义,HTML转义和区分大小写的问题,请坚持使用a-z,0-9和下划线.

  • 也许还将AZ添加到_stick to_-phrase. (2认同)