16

バックグラウンド

私の ubuntu ワークステーションが Active Directory のあるドメインで構成されているときの私の経験によると、作成されたユーザー名は次のパターンに従っていました。

ドメイン名\ユーザー名

Linux で apacheのuserdir拡張機能を使用するには、ホーム ディレクトリの public_html にアクセスするために、URL でユーザー名を使用する必要があります。

http://localhost/~ドメイン名\ユーザー名

問題 A:

Chrome は URL 内のすべてのバックスラッシュ「\」文字をスラッシュ「/」に変換し、結果の URL は以下のようになり、それはまったく異なり、常にNot Foundという結果になります。

http://localhost/~ドメイン名/ユーザー名

一方、Firefox はバック スラッシュをスラッシュに変換しないため、意図したターゲットへの http リクエストは Web サーバーによって処理されます。

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

問題 B:

CSS @import コンストラクトで同様のパス (パスに\を含む) を使用すると、HTTP Get Request としての css ファイルのインポート プロセスが 404 エラーを報告して失敗し、404 エラーで報告された URL に\の存在が完全に欠落します。これは、URL に対して GET 要求を呼び出す前に\が URL から削除されることを意味します。

この動作は、Firefox と Chrome で一般的です。しかし、彼らには珍しい解決策があります

Firefox は、CSS インポート プロセスで動作するようにバック スラッシュをエスケープする必要があります。

@import url(" http://localhost/~domain_name\\user_name/path/to/css ");

いつものように、Chrome はエンコードされたバック スラッシュ ソリューションを必要とします。

@import url(" http://localhost/~domain_name%5Cuser_name/path/to/css ");

  • URLの\を処理するための統一されたソリューションは何ですか?
  • ユーザー名に\が表示されないようにする方法はありますか?
4

3 に答える 3

13

URL のバックスラッシュを処理するための統一されたソリューションは、%5C を使用することです。RFC 2396 では、その文字を URL で使用することはまったく許可されていませんでした (したがって、その文字に関するすべての動作は、単なるエラー回復動作でした)。RFC 3986 では許可されていますが、広く実装されているわけではありません。特に、既存の URL プロセッサと完全に互換性がないためです。

特に、Chrome は IE と同じことを行います。バックスラッシュを入力するたびにスラッシュを意味していると想定します。

于 2012-05-04T07:33:03.087 に答える
4

Firefox の Slashy アドオンを使ってみてください。リンクはこちらです。

スラッシー

于 2014-05-19T11:57:07.333 に答える