Css FireFox和Chrome处理url中\(反斜杠)的不同行为

Css FireFox和Chrome处理url中\(反斜杠)的不同行为,css,firefox,url,google-chrome,backslash,Css,Firefox,Url,Google Chrome,Backslash,背景 根据我的经验,当我的ubuntu工作站配置在带有active directory的域上时,为我创建的用户名是按照以下模式创建的 域名\用户名 在linux上使用apache的userdir扩展需要在URL中使用用户名才能访问主目录中的公共html 问题A: Chrome将URL中的所有反斜杠“\”字符转换为正斜杠“/”,结果URL变为完全不同的下斜杠,并且总是结果未找到 另一方面,Firefox不会将反斜杠转换为正斜杠,因此对目标的http请求由web服务器提供服务 Common so

背景

根据我的经验,当我的ubuntu工作站配置在带有active directory的域上时,为我创建的用户名是按照以下模式创建的

域名\用户名

在linux上使用apache的userdir扩展需要在URL中使用用户名才能访问主目录中的公共html

问题A:

Chrome将URL中的所有反斜杠“\”字符转换为正斜杠“/”,结果URL变为完全不同的下斜杠,并且总是结果未找到

另一方面,Firefox不会将反斜杠转换为正斜杠,因此对目标的http请求由web服务器提供服务

Common solution is to encode back slash in %5C.
问题B:

如果我们在CSS@import构造中使用类似的路径(路径中包含\),则作为HTTP Get请求的CSS文件的导入过程因报告404错误而失败,并且404错误中报告的URL完全忽略了\的存在。这意味着在对URL调用GET请求之前,\将从URL中删除

这种行为在Firefox和Chrome中很常见。但他们有不同寻常的解决方案

Firefox需要转义反斜杠才能在css导入过程中工作

@导入url(“”)

Chrome像往常一样需要一个编码反斜杠解决方案

@导入url(“”)

  • URL中处理\的统一解决方案是什么
  • 有没有办法避免用户名中出现\

    • 处理URL中反斜杠的统一解决方案是使用%5C。RFC2396根本不允许在URL中使用该字符(因此任何关于该字符的行为都只是错误恢复行为)。RFC3986确实允许它,但没有得到广泛的实施,尤其是因为它与现有的URL处理器不完全兼容


      尤其是Chrome,它的功能与IE相同:假设您在键入反斜杠时使用正斜杠,正如您所发现的,因为Windows文件路径就是这样做的。

      尝试使用firefox中的Slashy插件来帮助您。这里有一个指向它的链接


      此反斜杠自动转换问题已在Chrome版本>=53.0.2785.116中修复


      现在反斜杠被正确地处理为%5C

      您可以链接到您的测试用例吗?我只是在本地对它进行了测试,它看起来确实工作得很好;它仍然无效。请注意,Firefox中当前存在一个错误,它修改了URL栏以创建用户友好的URL,但现在无法复制和粘贴,因为它不再是正确的URL编码:您刚刚保存了我…:)+1链接导致404错误,看起来该插件已被删除。我试着找点东西similar@cowlinator-插件链接已经更新我很确定没有更新。在Chrome 62.0.3202.89中键入地址栏或使用
      window.location=“”)时,仍然会出现这种情况在DevTools的控制台中。