Jakie znaki są dozwolone w nazwach plików dla plików HTML na serwerach?
To całkowicie zależy od serwera. Sam HTTP dopuszcza dowolny znak, w tym znaki kontrolne i znaki spoza ASCII, o ile są odpowiednio zakodowane w%, gdy jest to wymagane w adresie URL.
Na serwerze Unix nie można użyć "/" ani bajtu zerowego. (Jeśli możesz ich użyć, pojawią się one w adresie URL odpowiednio jako "% 2F" i "% 00".) Nie możesz także mieć określonych nazw plików "." Lub ".." lub pustego ciągu.
Na serwerze Windows masz wszystkie ograniczenia serwera uniksowego, a także nie możesz używać żadnego z \/:*?"<>|
lub znaków kontrolnych 1-31 i nie możesz mieć kropki ani spacji wiodących lub końcowych, a Ty " Będą miały trudności z używaniem nazw plików urządzeń starszego typu (CON, PRN, COM1 i wiele innych).
To nie ma nic wspólnego z HTTP; jak działają nazwy plików w systemie Windows, czyli complicated.
Czy mogę mieć File-Name.htm, File_Name.htm File Name.htm?
Oczywiście. Ale w tym ostatnim przypadku należy połączyć z nim przez URL-kodowania przestrzeń:
<a href="File%20Name.htm">thingy</a>
Przeglądarki zazwyczaj pozwalają uciec z opuszczeniem miejsca w, ale to naprawdę nie jest ważne. Jeśli chcesz uniknąć myślenia o unikaniu URL-i, wychodzeniu z HTML i rozróżnianiu wielkich i małych liter, trzymaj się a-z, 0-9 i podkreślenia.
Nazwy plików są ograniczone tylko przez podstawowy system operacyjny i system plików serwera. Na przykład w skrzynkach * nix dozwolony jest dowolny znak z wyjątkiem "/" i wartości null. Czy naprawdę pytasz o nazwy plików, czy też pytasz o linki do nazw plików lub być może odwołania do adresów URL? –