背景
根据我的经验,当我的Ubuntu工作站配置在活动目录上时,为我创建的用户名遵循以下模式。
域名\用户名
在Linux上使用Apache的userdir扩展需要在URL中使用用户名才能访问主目录中的public_html。
问题A:
Chrome将URL中的所有反斜杠'\'字符转换为正斜杠'/',结果URL完全不同,并且始终显示未找到。
另一方面,Firefox不会将反斜杠转换为正斜杠,因此Web服务器会提供对目标的HTTP请求。
Common solution is to encode back slash in %5C.
问题 B:
如果我们在 CSS 的 @import 构造中使用类似的路径(包含路径中的\),则 CSS 文件的导入过程将作为 HTTP Get 请求失败,并报告 404 错误。在 404 错误中报告的 URL 完全缺少\的存在。这意味着在调用 GET 请求之前,URL 中的\被移除了。
这种行为在 Firefox 和 Chrome 中很常见。但它们有不同的解决方案。
Firefox 需要转义反斜杠才能在 CSS 导入过程中工作。
@import url("http://localhost/~domain_name\\user_name/path/to/css");
而 Chrome 则需要一个编码后的反斜杠解决方案。
有没有统一的解决方案来处理URL中的反斜杠(\)? 有没有办法避免反斜杠(\)出现在用户名中?@import url("http://localhost/~domain_name%5Cuser_name/path/to/css");