所有服務器(* nix,Windows等)上HTML文件的文件名都允許使用哪些字符? 我正在尋找可在所有服務器上工作的「最低公分母」。 用途:我正在命名要公開發布的文件(Mysite.com/My-Page.htm)什麼是Web服務器文件名稱的合法/允許字符?
例如,空間? _ - 等
例如,我可以有File-Name.htm,File_Name.htm File Name.htm?
顯然,這需要與所有服務器和瀏覽器一起工作。 (IIRC,名稱受限於服務器而不是瀏覽器,但我可能是錯的)。
所有服務器(* nix,Windows等)上HTML文件的文件名都允許使用哪些字符? 我正在尋找可在所有服務器上工作的「最低公分母」。 用途:我正在命名要公開發布的文件(Mysite.com/My-Page.htm)什麼是Web服務器文件名稱的合法/允許字符?
例如,空間? _ - 等
例如,我可以有File-Name.htm,File_Name.htm File Name.htm?
顯然,這需要與所有服務器和瀏覽器一起工作。 (IIRC,名稱受限於服務器而不是瀏覽器,但我可能是錯的)。
在文件名中所允許的HTML文件在服務器上的什麼角色?
這完全取決於服務器。 HTTP本身允許任何字符,包括控制字符和非ASCII字符,只要在URL中請求時適當地進行%編碼即可。
在Unix服務器上,您不能使用'/'或零字節。 (如果你可以使用它們,它們將分別以'%2F'和'%00'的形式出現在URL中。)你也不能具有特定的文件名'。'或'..',或者空字符串。
在Windows服務器上,你有Unix服務器的所有限制,再加上你也不能使用任何\/:*?"<>|
或控制字符1-31,你不能有前導或尾隨點或空格,使用任何傳統設備文件名(CON,PRN,COM1等等)都會遇到困難。
這與HTTP無關;在Windows上文件名是如何工作的,即complicated。
我可以有File-Name.htm,File_Name.htm File Name.htm嗎?
當然可以。但在過去的情況下,你應該URL編碼的空間鏈接到它:
<a href="File%20Name.htm">thingy</a>
瀏覽器通常會讓你逃脫留下的空間,但它是不是真的有效。如果您想避免考慮URL轉義,HTML轉義和區分大小寫問題,請堅持a-z,0-9和下劃線。
也許還可以將A-Z添加到_stick to_-phrase。 – 2014-03-21 14:21:05
有沒有這樣的事情作爲一個HTML文件名。
某些字符必須用html編碼(例如,如果用在鏈接中),但文檔名稱中允許的字符將取決於Web服務器(可能還有服務器上的文件系統)。
任何文件名將是URL-encoded所以你應該沒問題。記錄下你的三個文件名都可以正常工作。
如果你不想讓你的文件名被服務器編碼,你應該避免保留字符:$ & +,/:; =?@和不安全字符:空格,引號,<>#%{} | \ ^〜[]`
但正如前面的答案所述,Web服務器應該通過對字符進行編碼來處理任何想要使用的內容。
一定要消除
* . "/\ [ ] : ; | = ,
這是絕不允許,由於在文件中不一致的命名約定標準的做法是使用A-Z和0-9和下劃線。大多數用戶都需要空間,但如果您可以避免使用它,解析問題可以提高可靠性,您可以閱讀mime(多部分Internet郵件擴展)上的rfc以瞭解所涉及的內容。
不管你做什麼,某處某處都可能會使生活變得困難 - 以至於我現在使用加密方法生成隨機的a-z小寫字符串並將它們用作文件名,將有用信息嵌入到文件源代碼中。
避免不惜任何代價的符號,...
在面值這是一個不正確的答案。除「/」外,您提到的所有字符都是類Unix系統上的文件名的有效字符。不一定要使用它們,但它們是有效的。 – 2009-09-28 17:42:45
像Jim說的那樣,服務器流量應該編碼URL中不允許的任何內容 - 一個主要的例子是空間應該是%20,但是你看到的是空間的+,這也是用於+ so的字符我的意見不是那麼卑微),這種情況恰恰相反,當一隻貓已經擁有它時,它就會追趕它。 – 2009-09-28 17:43:11
是的,布賴恩 - 它簡短而便宜。這只是我刪除的第一件事情,因爲即使{[%%%]}。ext使其跨服務器躍點,它也會在fp *中混淆char [256]。 (更不用說嵌入的空值等)曾經看到崩潰的操作系統與文件名中的點運算符? – 2009-09-28 17:46:39
我要說的經驗爲文件名的HTML文件的所有服務器上的一個很好的規則可以是字母(小寫優先)和數字字符(1雖然9)的任意組合,加上下劃線(_),減號( - )或加號(+)字符但不包含空格。另外,用dot html結束文件名(例如filename.html)。我個人避免使用下劃線和加號字符。
文件名僅受服務器的底層操作系統和文件系統的限制。例如,在* nix框中,允許除「/」和null之外的任何字符。 你真的在問關於文件名的問題,還是你在問關於文件名的鏈接或者引用了URL? – 2009-09-28 17:40:26