Различное поведение обработки \ (обратной косой черты )в URL-адресе в FireFox и Chrome

ПРЕДПОСЫЛКА

Согласно моему опыту, когда моя рабочая станция ubuntu настроена на домен с активным каталогом, имя пользователя, созданное для меня, соответствовало следующему шаблону.

домен _имя\пользователь _имя

Использование userdir расширения apache на linux потребует использования имени пользователя в URL-адресе для доступа к общедоступному _html в домашний каталог.

http ://localhost/ ~домен _имя\пользователь _имя

ПРОБЛЕМА A:

Chrome преобразует все символы обратной косой черты ' \ ' в URL-адрес для прямой косой черты '/ ', и результирующий URL-адрес становится совершенно другим и всегда приводит к Not Found .

http ://localhost/ ~домен _имя/пользователь _имя

Firefox, с другой стороны, не преобразует обратную косую черту в прямую косую черту , поэтому HTTP-запрос к намеченной цели обслуживается веб-сервером.

Common solution is to encode back slash in %5C.

ПРОБЛЕМА B:

Если мы используем аналогичный путь (, содержащий \ в пути )в конструкции CSS @import, процесс импорта файла css в качестве HTTP-запроса на получение завершается ошибкой, сообщая Ошибка 404 и URL-адрес, указанный в ошибке 404, полностью пропускают присутствие \ . Это означает, что \ удаляется из URL-адреса, прежде чем вызывать GET-запрос к нему.

Такое поведение характерно для Firefox и Chrome. Но у них есть необычные решения.

Firefox нуждается в скрытой обратной косой черте для работы в процессе импорта css.

@import url (" http ://localhost/ ~домен _имя\\пользователь _имя/путь/к/css " );

Chrome, как обычно, нуждается в закодированном решении с обратной косой чертой.

@import url (" http ://localhost/ ~домен _name%5Cuser _имя/путь/к/css " );

  • Какие есть унифицированные решения для работы с \ в URL?
  • Есть ли способ избежать появления \ в имени пользователя?

11
задан Shoaib Nawaz 3 May 2012 в 19:23
поделиться