4

Apacheでの基本認証用のユーザー名とパスワードを追加しましたが、UnicodeAuthName文字列をユーザーに提供したいと考えています。私のhttpd.confは次のようになります。

<Location "/">
    AuthType Basic
    AuthName "Some Unicode Here"
    AuthUserFile /somewhere/htpasswd
    Require valid-user
</Location>

しかし、「Some Unicode Here」は私のブラウザでは常にゴミのように見えます。正しく表示するにはどうすればよいですか?

4

2 に答える 2

4

ブラウザがサポートされていないことが主な問題です。 HTTP ヘッダーにどの文字エンコーディングを使用する必要がありますか? を参照してください。. ヘッダーAuthNameにレルムとして表示されます。WWW-Authenticate

WWW-Authenticate: Basic realm="Some Unicode Here"

いくつかの簡単な実験は、次のことを示しています。

  • Apache は設定で UTF-8 文字列をエンコードせずAuthName、そのまま送信します
  • Firefox、MSIE、および Chrome はすべて、その UTF-8 バイト シーケンスを ISO-8859-1 として (正しく) 解釈します (したがって、誤って表示される可能性があります)。
  • HTTP RFC-2616 で規定されているように RFC-2047 MIME エンコーディングをサポートするものはなく、文字どおり次のように表示されます。=?utf-8?B?U29tZSBVbmljb2RlIEhlcmUK?=

mod_auth_tktオプションがある場合は、基本認証の代わりに Cookie ベースのものをお勧めします。これには、ドロップインの htpasswd スタイルの perl スクリプトがありREMOTE_USER、独自のフォームをロールするだけで済みます。)

于 2013-01-24T16:54:41.680 に答える
3

アクセント付き文字を含む .htaccess AuthName の適切な解決策を見つけました。

テキスト エディタまたは「iconv」を使用して、正しいエンコーディングでファイルを保存します。

Sublime 3 では、File -> Save with Encoding -> Western ISO-8859-1 を使用しました。

于 2015-10-02T14:37:45.597 に答える